Ersetzen Sie Buchstaben mit Zahlen als Benutzertypen in einer JTextField
-
25-09-2019 - |
Frage
habe ich ein JTextField für Benutzer eine Seriennummer einzugeben. Die Form der Seriennummer ist so, dass es keiner der Buchstaben enthält I, O oder S, da sie sich auf 1 ähnlich aussehen, 0 und 5. Was ist der richtige Weg, es zu machen, so dass, wenn der Benutzer tippt eine jener Briefe, es gibt die Nummer statt?
z.B. Der Benutzer tippt AaOo0
und es geht in die JTextField als Aa000
Um zu klären, dies während der Benutzer tippt jedes Zeichen geschehen sollte, nicht, nachdem sie den Befehl eingegeben haben und verließ das Textfeld ein.
Lösung
Verwenden Sie ein DocumentFilter .
So etwas wie:
AbstractDocument doc = (AbstractDocument)jtextField.getDocument();
doc.setDocumentFilter(yourImplementationOfDocumentFilterWhichChangeOto0OnInsertAndReplace);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow