Wertänderungs-Listener für JTextField
Das Ziel besteht darin, sofort bei der Textwertänderung in einem JTextField ein Meldungsfeld anzuzeigen. Während der angegebene Code auf die Eingabetaste reagiert, besteht das gewünschte Verhalten darin, das Meldungsfeld mit Wertänderungen auszulösen.
Ungültiger Code
textField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { // Code } });
Lösung
Das Problem ergibt sich aus der Verwendung eines ActionListeners, der auf den Tastendruck der Eingabetaste wartet. Um dies zu beheben, muss man stattdessen auf das zugrunde liegende Dokument hören:
textField.getDocument().addDocumentListener(new DocumentListener() { // Event handlers for document changes public void warn() { // Trigger message box if value less than or equal to 0 } });
Durch das Hinzufügen eines DocumentListeners, der auf Änderungen (Einfügungen, Entfernungen, Modifikationen) im Dokument lauscht, wird das gewünschte Verhalten erreicht. Die Methode warn() prüft, ob der Wert kleiner oder gleich 0 ist und löst entsprechend die Meldungsbox aus.
Das obige ist der detaillierte Inhalt vonWie kann ich unmittelbar nach einer JTextField-Wertänderung ein Meldungsfeld anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!