Zero-padding un filatore in Java
Domanda
Come si fa ad aggiungere zero padding ad un JSpinner
?
Dal momento che il filatore crea il JFormattedTextField
in sé, non posso passare il formato nel costruttore JFormattedTextField.
Non c'è un modo per impostare la formattazione su un JFormattedTextField
esistente?
Quello che voglio: value = 37, editore = "0037"
UPDATE:
Ho provato questo come suggerito:
JSpinner mySpinner = new JSpinner();
mySpinner.setEditor(
new JSpinner.NumberEditor(mySpinner, "####"));
e il risultato è alcun cambiamento a tutti per la presentazione dei dati del filatore. Sembra una soluzione ragionevole; qualcuno ha provato questo successo così posso essere sicuro che è solo qualcosa di traballante nella mia applicazione?
Soluzione
Puoi impostare l'editor te , in questo modo:
// minimum of four digits
mySpinner.setEditor(new JSpinner.NumberEditor(mySpinner, "0000"));
"0000"
è una stringa DecimalFormat
specificando quattro cifre, zeri, se necessario; "####"
specifica quattro cifre, ma non pari a zero-pad.
Il DecimalFormat
documentazione API coperture formattazione stringhe in modo più dettagliato.
Altri suggerimenti
Con riferimento ai javadoc, JSpinner ha una setEditor (JComponent) metodo . L'uso che per impostare la vostra abitudine JFormattedTextField, con il suo formato personalizzato.