Devi creare un custom Document (estendendo da PlainDocument), fare l'override del metodo insertString() in modo che effettui l'inserimento se e solo se la lunghezza della stringa finora inserita è 0. Quindi, assegnare questo custom Document alla JTextField.
codice:
class OneCharPlainDocument extends PlainDocument {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null || "".equals(str)) {
return;
}
str = str.substring(0, 1);
if (getLength() > 0) {
// Non aggiungiamo nulla
str = "";
}
super.insertString(offs, str, a);
}
}
Quindi assegnerai come Document di JTextField un'istanza di tale classe.
E' un esempio scritto al volo... non l'ho verificato.
Ciao.