JTextField: Listener für Texteingaben/-Änderungen

guanidin

Grünschnabel
Hallo,
ich suche einen Listener, der reagiert, wenn ich in einem JTextField den Text eingebe oder ändere, aber nach der Eingabe bzw. Änderung nicht auf Enter drücke (also einen ActionListener auslöse). Ich habe das schon mit einem FocusListener probiert, der allerdings ja auch ausgelöst wird, wenn man nur das Textfeld verlässt, um zum Beispiel erst ein anderes Textfeld auszufüllen.
Also: Welchen Listener muss ich wie einsätzen, damit man nicht mehr auf Enter drücken muss, damit die Eingabe angenommen wird?
Mit freundlichen Grüßen
Guanidin
 
Hi,
wie in allen Swing-Komponenten gibt's auch im JTextField die Trennung zwischen Model und View. Am Model - im Falle von JTextField ist das ein PlainDocument - kannst Du einen DocumentListener anmelden.
(<JTextField>.getDocument().addDocumenListener(...); )
Der DocumentListener definiert 3 Methoden: changedUpdate, insertUpdate, removeUpdate. Wenn Du per Tastatur eine Eingabe machst, wird changedUpdate gerufen, wenn Du z.B. über Copy&Paste etwas einfügst, wird insertUpdate gerufen.
Mit der Variante von Harald erwischst Du nur Keys, aber keine Pastes und keine Drops.

Gruß
testalucida
 
Zurück