Devi creare un Document che faccia ciò che vuoi e poi assegnarlo alla JTextField.
Un esempio di Document che accetta solo cifre (e non lettere o altro):
codice:
class CifreDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str != null) {
StringBuffer sb = new StringBuffer( str.length() );
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i); // Ottengo ciascun carattere della stringa
if (Character.isDigit(c)) { // Se il carattere è una cifra, la inserisco
sb.append(c);
}
}
super.insertString(offs, sb.toString(), a);
}
}
}
Che andrà assegnato alla tua JTextField:
codice:
JTextField txt = new JTextField();
txt.setDocument( new CifreDocument() );
Ciao.