Relleno con ceros una ruleta en Java
Pregunta
¿Cómo agregar relleno de ceros a un JSpinner
?
Dado que el spinner crea la JFormattedTextField
en sí, no puedo pasar el formato en el constructor JFormattedTextField.
¿No hay una manera de definir el formato en una JFormattedTextField
existente?
Lo que quiero: valor = 37, editor = "0037"
ACTUALIZACIÓN:
He intentado esto como se sugiere:
JSpinner mySpinner = new JSpinner();
mySpinner.setEditor(
new JSpinner.NumberEditor(mySpinner, "####"));
y el resultado se produce ningún cambio en absoluto a la presentación de los datos del tornillo. Parece que una solución razonable; Alguien ha probado esto con éxito para que pueda estar seguro de que es algo inusual en mi propia aplicación?
Solución
Puede conjunto el editor a sí mismo, así:
// minimum of four digits
mySpinner.setEditor(new JSpinner.NumberEditor(mySpinner, "0000"));
"0000"
es una cadena DecimalFormat
especificando cuatro dígitos, con relleno de ceros como sea necesario; "####"
especifica cuatro dígitos, pero no cero-pad.
El href="http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html" rel="nofollow noreferrer"> DecimalFormat
documentación de la API cubiertas formateo de cadenas con más detalle.
Otros consejos
Haciendo referencia a los javadocs, JSpinner tiene un setEditor (JComponent) método . El uso que para establecer su costumbre JFormattedTextField, con su formato personalizado.