Der hartnäckige Fokus

Status
Nicht offen für weitere Antworten.

Cheefrocker

Bekanntes Mitglied
Hallo zusammen!

Nachdem ich das ganze Forum durchsucht habe und leider nichts passendes zu meinem Problem gefunden habe hoffe ich das ihr mir weiterhelfen könnt.

Mein Problem ist der Fokus. Undzwar habe ich mehre JdbTextfields(kann auch jTextfield sein). Nach Auswahl eines JRadioButtons soll ein bestimmtes Textfeld den Fokus erhalten. Den Fokus bekommt auch das Textfield. Jedoch wenn der Benutzer einen anderen JRadiobutton aktiviert sollte das Feld gelöscht und der Fokus aufgehoben werden. Das Problem ist das wenn ich ein anderen JRadioButton aktiviere der Fokus immernoch sich im TextField befindet. Hab schon alles probiert leider funktioniert das nicht wie es soll. Könnt ihr mir eventuell weiterhelfen??

GrabFocus() scheint nicht zu funktioniert, auch das setzten des Fokus auf ein anderes Feld scheitern.

Habe es mit folgenden Funktionen versucht:

- RequestFocus()
- GrabFocus()
- setNextFocusableComponent();


Leider Schlug alles fehl! Ich hoffe das ihr mri helfen könnt das ich am verzweifeln bin! 🙁 :bahnhof:


Vielen dank für eure Mühe!


mfg
 
Mh, normalerweise wenn du den RadioButton anklickst, müsste der Focus schon auf den sitzen...

Hast mal bißchen Code??
 
dazu muss ich sagen das ich Jbuilder4 mit SDK 1.3 benutzte (ja schon alt aber ich hab leider keine andere wahl).


Code:
//1 Auswahlfeld: Ja, in voller Höhe
  void jRButton_BM01_VolleH_actionPerformed(ActionEvent e) {

    //Eingabefeld  Arbeitsentgelt_bis Freigeben
    jdbTextField_BM01_AE.setEnabled(true);

    //Keine Meldung
    jTextField_BM01_FMeldung.setText("");

//Entsperrt das Feld Weiter
    jButton_BM01_Weiter.setEnabled(false);

//Setzt Fokus auf Arbeitsentgelt bis
 jdbTextField_BM01_AE.requestFocus();


  }
 //2 Auswahlfeld: Ja, aber EFZ ist niedriger als VG
  void jRButton_BM01_NVG_actionPerformed(ActionEvent e) {

     //Leere das Arbeitsentgelt_bis Feld
     jdbTextField_BM01_AE.setText("");
    //Sperre das Arbeitsentgelt_bis Feld
    jdbTextField_BM01_AE.setEnabled(false);

  //Fokus muss aufgehoben werden..
   jdbTextField_BM01_AE.GrabFocus();


    //Entsperrt das Feld Weiter
    jButton_BM01_Weiter.setEnabled(true);



    //Färbe das Textfeld schwarz
    jdbTextField_BM01_AE.setBorder(BorderFactory.createLineBorder(Color.black));


  }


 //3 Auswahlfeld:
  void jRButton_BM01_EFZ_Nein_actionPerformed(ActionEvent e) {

     //Leere das Arbeitsentgelt_bis Feld
     jdbTextField_BM01_AE.setText("");
    //Sperre das Arbeitsentgelt_bis Feld
    jdbTextField_BM01_AE.setEnabled(false);

  //Fokus muss aufgehoben werden..
   jdbTextField_BM01_AE.GrabFocus();

    //Keine Meldung
    jTextField_BM01_FMeldung.setText("");

    //Entsperrt das Feld Weiter
    jButton_BM01_Weiter.setEnabled(true);


    //Färbe das Textfeld schwarz
    jdbTextField_BM01_AE.setBorder(BorderFactory.createLineBorder(Color.black));

  }

//---------------------------------------------------------------------------------------------------


//Button -- Fokusgained
  void jdbTextField_BM01_AE_focusGained(FocusEvent e) {
 //Färbe das Textfeld gelb
 jdbTextField_BM01_AE.setBorder(BorderFactory.createLineBorder(Color.yellow));
  }

// Button -- Fokuslost
void jdbTextField_BM01_AE_focusLost(FocusEvent e) {
   //Färbe das Textfeld schwarz
  jdbTextField_BM01_AE.setBorder(BorderFactory.createLineBorder(Color.black));

////Hier wird das Datum übergeben und formatiert.Bei Fehleingabe wird das Feld gelöscht(Exception aufgerufen)
try
{
  //Übergibt DFormat den String vom EingabeFeld(formatiert vorwärts)
  String EingabeDatum =  DFormat.Datums_VW(jdbTextField_BM01_AE.getText());

 if(EingabeDatum.equals(""))
 {
  jdbTextField_BM01_AE.requestFocus();
  jdbTextField_BM01_AE.setText("");
 }
 else
 {
   //Das formatierte Datum wird ausgegeben
   jdbTextField_BM01_AE.setText(EingabeDatum);
   //Fehlermeldung nicht anzeigen
  jTextField_BM01_FMeldung.setText("");

  //Speicher Wert in Variable
  AE_bis = EingabeDatum;


  //Entsperrt das Feld Weiter
  jButton_BM01_Weiter.setEnabled(true);

//------------------------------------------------------------------------------

}//ende else
}//ende if
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben