Wie überprüft ein JTextField?
Wie überprüft ein textfield zur Eingabe nur 4-stellig nach dem Komma in Swing?
InformationsquelleAutor der Frage Chandu | 2010-05-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie überprüft ein textfield zur Eingabe nur 4-stellig nach dem Komma in Swing?
InformationsquelleAutor der Frage Chandu | 2010-05-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jegliche Validierung in Swing kann durchgeführt werden, indem ein
InputVerifier
.1. Zuerst erstellen Sie Ihre eigenen Eingabe-überprüfung:
2. Dann ordnen Sie eine Instanz dieser Klasse, um Ihren text-Feld. (In der Tat jeder
JComponent
überprüft werden kann)Natürlich können Sie auch eine anonyme innere Klasse, aber wenn der validator verwendet werden, die auf anderen Komponenten auch, eine normale Klasse besser ist.
Haben auch einen Blick auf die SDK-Dokumentation: JComponent#setInputVerifier.
InformationsquelleAutor der Antwort Daniel Rikowski
Könnte man wohl erreichen das gleiche mit
DocumentListener
. Alles, was Sie tun müssen ist, überprüfen die Eingabe Zeichenkette mit der gewünschten Zeichenfolge-Muster. In diesem Fall ist das Muster scheint zu sein, eine oder mehrere Ziffern, gefolgt von einem Punkt, UND genau 4 Ziffern nach dem Dezimalpunkt. Der folgende code veranschaulicht die VerwendungDocumentListener
um dies zu erreichen:Solange das text-Feld enthält keine gültige Eingabe, die Fehlermeldung wird angezeigt, wie das Bild unten.
Sobald die Eingabe bestätigt wurde, wird die Fehlermeldung nicht angezeigt werden.
Natürlich können Sie ersetzen die Validierung Aktion, was auch immer Sie brauchen. Zum Beispiel, möchten Sie vielleicht einige anzeigen popup, wenn auf eine Schaltfläche geklickt wird, wenn die Eingabe nicht gültig ist, etc.
Ich warf dieses zusammen zeigen eine alternative Antwort bereits gegeben. Es könnte Fälle geben, bei dieser Lösung könnte sein, mehr geeignet. Möglicherweise gibt es Fälle, wenn die gegebene Antwort könnte sein, mehr geeignet. Aber eins ist sicher, alternativen sind immer eine gute Sache.
InformationsquelleAutor der Antwort hfontanez