Devi definire un tuo Document personalizzato. Ad esempio definisci una classe NumericPlainDocument che estende PlainDocument. In questa classe ridefinisci il metodo insertString(...) :
Quindi impostare questo Document come documento del tuo JTextField:codice:import javax.swing.text.AttributeSet; import javax.swing.text.BadLocationException; import javax.swing.text.PlainDocument; public class NumericPlainDocument extends PlainDocument { public void insertString (int offset, String str, AttributeSet attr) throws BadLocationException { if (str == null) return; if ((getLength() + str.length()) <= 3) { char c = str.toCharArray()[0]; if (((Character.isDigit(c) || (c == java.awt.event.KeyEvent.VK_BACK_SPACE) || (c == java.awt.event.KeyEvent.VK_DELETE)))) { super.insertString(offset, str, attr); } } } }
codice:tuoJTextField.setDocument(new NumericPlainDocument());

Rispondi quotando