1) Wie kann ich Cursor auf 0 possition setzen, ohne Caret oder Focus zu verwenden, das in invokeLater () eingepackt ist (kann auch mit @camickr Formatiertes Textfeld Tipps ), gibt es jemanden, der einen anderen Weg kennt
2) How to reset Formatter
manchmal (indem Focus von TAB aus der Tastatur ausgelöst wird), reset funktioniert nicht und auf focusLost (leeres Feld) Formatter returns / reincarnated chars oder String back (last before setText ("");) ,
Hinweis: Kenne Code oder folgenden Code is only this way
, wie man Formatierer von OTN zurücksetzt, aber ihre schrecklichen Suchtreffer ...., nur Code (Frage oder Antwort von Jeanette ???)
angefügte Bilder basieren auf meinem sscce
%Vor% Unter Mac OS verhält sich das Standardverhalten des UI-Delegaten com.apple.laf.AquaTextFieldF
ähnlich wie CaretPositionListener
:
Tab oder Shift - Tab : Platzieren Sie das Caret am Anfang des Feldes.
Klicken Sie auf: Platzieren Sie das Kästchen kurz am Anfang des Felds und verschieben Sie es dann an den Klickpunkt.
IMO, das CaretPositionListener
macht das letztere viel reibungsloser .
Das Standardverhalten von JFormattedTextField
ist aktiviert Fokusverlust ist COMMIT_OR_REVERT
. Im folgenden Beispiel ist Tab das erste ungültige Feld, um den Effekt zu sehen. Der Formatierer kann den ungültigen Wert weder festlegen noch zurückgeben, daher ersetzt er MASK.length()
Leerzeichen. Dieser Wert ist gültig, wenn ein wenig unklar.
Nachtrag: Ich habe den folgenden Code aktualisiert, um die Änderung von setFocusLostBehavior()
.
Code:
%Vor%Tags und Links java swing formatter jformattedtextfield