Nur Zahlen in Textfeld eingeben: Unterschied zwischen den Versionen
K |
K |
||
Zeile 30: | Zeile 30: | ||
==Beschränken der Größe der Zahl== | ==Beschränken der Größe der Zahl== | ||
− | =Nur Buchstaben= | + | =Nur Buchstaben erlauben= |
+ | |||
+ | =Fragen= | ||
+ | Nicht alle Themen sind derzeit ausgearbeitet. Sollten Fragen bestehen, die bisher hier nicht beantwortet wurden, sollte im [http://forum.byte-welt.net/java-forum-das-java-welt-kompetenz-zentrum-wir-wissen-und-helfen-/ Java-Forum von Byte-Welt] eine entsprechende Frage gestellt werden. | ||
[[Kategorie:Java]] | [[Kategorie:Java]] | ||
[[Kategorie:Tutorials]] | [[Kategorie:Tutorials]] | ||
[[Kategorie:Java-Codeschnipsel]] | [[Kategorie:Java-Codeschnipsel]] |
Version vom 27. Juni 2015, 14:37 Uhr
Inhaltsverzeichnis
Einleitung
Oft wird gefragt, wie man vom Benutzer nur Zahlen in Textfeldern eingeben lassen kann. Benutzereingaben in Textfelder sollen also von vorn herein nur auf Zahlen eingeschränkt werden.
Folgender Artikel wird Beispiele für verschiedene Lösungsansätze liefern.
Setzen eines Documents
Damit ein Textfeld (JTextField
, JTextArea
etc.) ein gewünschtes/verändertes Verhalten annehmen kann, genügt es, ein passendes javax.swing.text.Document
zu übergeben.
<code=Java>
textField.setDocument(new IntegerDoucument());
</code=java>
In obigem Beispiel wird bspw. einem JTextField das folgende Document übergeben, so dass das Textfeld nur noch ganze Zahlen als Eingabe akzepziert.
Nur Integer-Werte erlauben
Dazu leiten wir ein Objekt vom Typ PlainDocument
ab und erweitern es so, dass es nur noch ganze Zahlen akzeptiert:
<code=java>
class IntegerDocument extends PlainDocument {
@Override public void insertString(int offset, String s, AttributeSet attributeSet) throws BadLocationException { if (s.matches("[0-9]")) { super.insertString(offset, s, attributeSet); } else { Toolkit.getDefaultToolkit().beep(); //keine Ziffer eingegeben } } }
</code=java>
Beschränken der Größe der Zahl
Nur Buchstaben erlauben
Fragen
Nicht alle Themen sind derzeit ausgearbeitet. Sollten Fragen bestehen, die bisher hier nicht beantwortet wurden, sollte im Java-Forum von Byte-Welt eine entsprechende Frage gestellt werden.