Premesso che la cosa non è simpatica dal punto di vista dell'utente (non è come con le date che si possono utilizzare i segnaposto per i caratteri corrispondenti al giorno/mese/anno che serve a guidare l'utente) vedersi cambiare a video un numero mentre lo sta digitando, comunque la cosa può essere fatta senza nemmeno utilizzare una JFormattedTextField, ma una banale JTextField: basta settargli un Document che sia in grado di modificare "al volo" il contenuto da inserire in modo che lo renda "formattato":
codice:
public class MyIntegerDocument extends PlainDocument {
private static final NumberFormat nf = NumberFormat.getIntegerInstance( Locale.ITALIAN );
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
if (str == null) {
return;
}
if ( !str.matches("\\d+") ) return;
String myText = getText(0, getLength()).replaceAll("\\.","") + str;
int myVal = Integer.parseInt( myText );
myText = nf.format( myVal );
super.remove(0, getLength());
super.insertString(0, myText, a);
}
}
Settando il Document di esempio in una JTextField dovresti avere il risultato cercato, ad esempio:
codice:
JTextField txt = new JTextField();
txt.setDocument( new MyIntegerDocument() );
txt.setPreferredSize( ... );
Il Document proposto effettua anche un minimo di "validazione" dell'input: accetta solo cifre (non caratteri diversi).
Ciao.