Wie bekomme ich die Länge eines JTextField-Inhalte als Benutzer-Typen?
JTextField besitzt ein keyTyped-event, aber es scheint, dass die Zeit es feuert der Inhalt der Zelle wird noch nicht gewechselt.
Weil die .length() ist immer falsch, wenn Sie hier Lesen.
Muss es einen einfachen Weg, um die Länge, wie es scheint, um den Benutzer nach einem Tastendruck?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist wahrscheinlich nicht der optimale Weg (und es ist schon eine Weile), aber in der Vergangenheit habe ich einen DocumentListener an das JTextField und auf Ereignisse (insert, update, remove) ich:
Gibt die Gesamtlänge von text Feld Inhalt.
Diese möglicherweise mit diesem "Fehler" (oder eher "feature")
Eine mögliche Lösung ist, hören Sie ein zugehörige Dokument
KeyEvent
s sind low-level-Ereignisse, die nicht geeignet sind, hier [das klingt vertraut].Wie funktioniert das
JTextField
system weiß, dass ein Zeichen eingegeben wurde? Durch ein key eingegeben Veranstaltung (wenn ich mich Recht erinnere, erfolgt durch das PL&F). Funktioniert das event zugeschickt bekomme, um das system Zuhörer, bevor Sie Ihre Zuhörer? Es möglicherweise oder möglicherweise nicht tun.In diesem Fall, werden Sie wahrscheinlich wollen zu gehen, um die
Document
und fügen Sie ein higher-level-listener. Mit Swing ist es eine gute Idee zu go für das Modell früh - die 'J' - Klasse-Schnittstellen sind inkohärent. Wenn Sie das abfangen von input-Daten, dann möchten Sie wahrscheinlich ein custom-Modell (oder im Fall vonDocument
eineDocumentFilter
).Verwenden Sie diesen code: