TextField Value Change Listener
Ihr Ziel ist es, bei Wertänderungen in einem Textfeld sofort ein Meldungsfeld anzuzeigen. Ihr aktueller Code fordert das Meldungsfeld jedoch erst auf, nachdem Sie die Eingabetaste gedrückt haben. Um dieses Problem zu beheben, konzentrieren Sie sich auf das zugrunde liegende Dokument, um Textfeldänderungen zu verfolgen.
Lösung:
JTextFields wurden in Swing eingeführt und verwenden ein Dokument, das den Text speichert und verwaltet Inhalt. Durch das Hinzufügen eines DocumentListener können Sie Textänderungen innerhalb des Felds überwachen. Hier ist der aktualisierte Code:
// Listen for changes in the text textField.getDocument().addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e) { warn(); } public void removeUpdate(DocumentEvent e) { warn(); } public void insertUpdate(DocumentEvent e) { warn(); } public void warn() { if (Integer.parseInt(textField.getText()) <= 0) { JOptionPane.showMessageDialog(null, "Error: Please enter number bigger than 0", "Error Message", JOptionPane.ERROR_MESSAGE); } } });
Wenn der DocumentListener vorhanden ist, lösen alle Textänderungen im Feld jetzt die Methode warn() aus, die die Eingabe überprüft und bei Bedarf das Meldungsfeld anzeigt. Auf diese Weise wird das Meldungsfeld sofort angezeigt, nachdem der Benutzer den Text entsprechend Ihren Anforderungen geändert hat.
Das obige ist der detaillierte Inhalt vonWie zeige ich ein Meldungsfeld sofort bei einer Änderung des TextField-Werts in Swing an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!