Zero-Padding einen Spinner in Java
Frage
Wie fügen Sie das Auffüllen mit Nullen zu einem JSpinner
?
Da der Spinner die JFormattedTextField
selbst schafft, kann ich nicht nur das Format in den JFormattedTextField Konstruktor übergeben.
Gibt es nicht eine Möglichkeit, die Formatierung auf einem vorhandenen JFormattedTextField
zu setzen?
Was ich will: Wert = 37, editor = "0037"
UPDATE:
Ich habe schon versucht, diese wie vorgeschlagen:
JSpinner mySpinner = new JSpinner();
mySpinner.setEditor(
new JSpinner.NumberEditor(mySpinner, "####"));
und das Ergebnis ist keine Änderung überhaupt auf die Darstellung der Daten des Spinners. Es scheint wie eine vernünftige Lösung; hat jemand versucht, dies erfolgreich, damit ich sicher sein kann, es ist nur etwas schuppig in meiner eigenen Anwendung?
Lösung
Sie können gesetzt Herausgeber selbst, wie folgt aus:
// minimum of four digits
mySpinner.setEditor(new JSpinner.NumberEditor(mySpinner, "0000"));
"0000"
ist ein DecimalFormat
Zeichenfolge Spezifizieren vier Ziffern, mit Nullen aufgefüllt, wie erforderlich; "####"
gibt vier Ziffern aber nicht Null-Pad.
Die DecimalFormat
API-Dokumentation Abdeckungen Formatierung Strings im Detail.
Andere Tipps
Mit Bezug auf die javadocs hat JSpinner ein setEditor (JComponent) Methode. Verwenden Sie diese Option setzt Ihre benutzerdefinierte JFormattedTextField mit seinem benutzerdefinierten Format.