In meiner Anwendung sind vier TextArea vorhanden und ich möchte nur vier Zeichen in einen Textbereich eingeben und der Cursor bewegt sich automatisch zum nächsten TestArea. Auch wenn ich in diesem TextArea vier Zeichen eingebe, springt der Cursor automatisch wieder zum nächsten TextArea.
Beispiel: Zum Zeitpunkt der Installation von Windows XP wollen Sie "Key" und es gibt vier Abschnitte, wenn Sie im ersten Abschnitt vier Zeichen eingeben, dann bewegt sich der Cursor automatisch zum nächsten Abschnitt.
Das gleiche möchte ich in meiner Anwendung.
Zuerst füge ich CustomizedTextFields.jar hinzu und erstelle dann vier IntegerField:
%Vor%Danach zeige ich alle diese IntegerField auf meinem Rahmen.
Jetzt habe ich diesen Code ausprobiert, um den Cursor zum nächsten Feld zu schicken, aber es funktioniert nicht:
%Vor%Interessant genug Frage zu versuchen, meine schemenhafte Kenntnis des Textpakets zu verbessern: -)
Es gibt zwei separate Anforderungen hier
im Code:
%Vor%Der documentFilter ist derjenige aus dem Swing-Lernprogramm
Fügen Sie DocumentListener zum JTextComponents
, zum Anhören DocumentFilter
Verwenden Sie nicht KeyListener
für JTextComponents
, verwenden Sie nur DocumentListener
füge die nächste JTextArea
zur DocumentListener
hinzu, wenn dort die vierte eingegeben wird. Char in JTextArea
,
Beachten Sie, dass das Verschieben mit Focus
von einem JTextArea
in ein anderes besser in invokeLater
Ersetzen Sie text2.getCursor()
durch text2.requestFocus()
.
getCursor()
dient zum Abrufen der Form des Mauszeigers beim Überfahren einer Komponente.
Mit dieser Methode ist es auch möglich, mehr als 4 Zeichen in ein Feld einzugeben, zum Beispiel durch Einfügen aus der Zwischenablage. Wenn Sie das blockieren möchten, müssen Sie überprüfen, ob der eingegebene Text länger als 4 Zeichen ist. Wenn ja, nehmen Sie nur die ersten 4 Zeichen davon.
einfach nur textarea erstellen und zu key typed events gehen Den kannst du das schreiben
%Vor%