Hallo,
ich möchte in einer Swing Anwendung in einem Eingabefeld eine korrekte Eingabe erzwingen. Dazu habe ich einen Fokus Listener implementiert.
Im Ereignis Focus Lost habe ich bei Fehleingaben einen requestFokus auf dieses Eingabefeld gesetzt und gebe eine Fehlermeldung aus.
Diese Fehlermeldung kommt jedoch mehrfach!.
Ich habe in der Zwischenzeit keine Möglichkeit, den Wert im Eingabefeld zu korrigieren.
Warum wird das Ereignis Fokus Lost ein zweites, drittes und viertes Mal durchlaufen, obwohl ich keine Eingaben vornehme.
Frage zwei: Erkenne ich im Ereignis "Fokus Lost" , wenn der Anwender eine andere Taste (z. B. EXIT) gedrückt hat, damit das Programm z. B. beendet werden kann.
Momentan muss der Wert des Feldes korrekt eingegeben werden, erst dann zündet die EXIT Taste.
Programmauszug:
ich möchte in einer Swing Anwendung in einem Eingabefeld eine korrekte Eingabe erzwingen. Dazu habe ich einen Fokus Listener implementiert.
Im Ereignis Focus Lost habe ich bei Fehleingaben einen requestFokus auf dieses Eingabefeld gesetzt und gebe eine Fehlermeldung aus.
Diese Fehlermeldung kommt jedoch mehrfach!.
Ich habe in der Zwischenzeit keine Möglichkeit, den Wert im Eingabefeld zu korrigieren.
Warum wird das Ereignis Fokus Lost ein zweites, drittes und viertes Mal durchlaufen, obwohl ich keine Eingaben vornehme.
Frage zwei: Erkenne ich im Ereignis "Fokus Lost" , wenn der Anwender eine andere Taste (z. B. EXIT) gedrückt hat, damit das Programm z. B. beendet werden kann.
Momentan muss der Wert des Feldes korrekt eingegeben werden, erst dann zündet die EXIT Taste.
Programmauszug:
Code:
jTDatum.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusLost(java.awt.event.FocusEvent e) {
Datumsroutinen daro = new Datumsroutinen();
try {
if (daro.pruefeDatum(jTDatum.getText()) == true)
{
if (daro.pruefeDatumKleinerHeute(jTDatum.getText()) == false)
{
JOptionPane.showMessageDialog(getParent(), "Wann willst du dir was kaufen?");
// Fokus bleibt auf diesem Feld
jTDatum.requestFocus();
}
}
else
{
JOptionPane.showMessageDialog(getParent(), "bitte Datum korrekt eingeben");
// Fokus bleibt auf diesem Feld
jTDatum.requestFocus();
}
} catch (Exception ed) {
ed.printStackTrace();
jTDatum.requestFocus();
JOptionPane.showMessageDialog(getParent(), "bitte Datum korrekt eingeben");
}
}
});
Zuletzt bearbeitet von einem Moderator: