Nur Zahlen in Textfeld eingeben
Aus Byte-Welt Wiki
Version vom 27. Dezember 2014, 22:41 Uhr von L-ectron-x (Diskussion | Beiträge) (→Setzen eines Documents)
Oft möchte man Benutzereingaben in Textfelder von vorn herein einschränken. 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.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>