Java JSpinner Prevenire Lettera d'inserzione
Domanda
Un JSpinner viene utilizzato per memorizzare un numero nella mia richiesta (con uno SpinnerNumberModel).
Come previsto, il filatore non consente caratteri non validi (lettere, simboli, ecc) per essere memorizzati. Tuttavia, quei personaggi appaiono nel componente filatore quando li digito. Appena posso passare l'attenzione ad un altro componente, scompaiono.
C'è un modo per evitare che i caratteri non validi di apparire nel filatore?
Soluzione
È possibile aggiungere un DocumentFilter per l'editor del filatore per evitare carattere indesiderato vengano aggiunti al documento. Si ottiene l'editor utilizzando il codice come:
JTextField editor = ((JSpinner.DefaultEditor)spinner.getEditor()).getTextField();
Leggere la sezione dal tutorial Swing on Implementazione un documento di filtro per ulteriori informazioni.