Zero-preenchimento um spinner em Java
Pergunta
Como você adicionar de zero padding para um JSpinner
Desde o spinner cria o próprio JFormattedTextField
, eu não posso simplesmente passar o formato para o construtor JFormattedTextField.
não há uma maneira de definir a formatação em um JFormattedTextField
existente?
O que eu quero: valor = 37, editor = "0037"
UPDATE:
Eu tentei isso como sugerido:
JSpinner mySpinner = new JSpinner();
mySpinner.setEditor(
new JSpinner.NumberEditor(mySpinner, "####"));
e o resultado há nenhuma mudança em tudo para a apresentação dos dados do rotadores. Ele parece ser uma solução razoável; Alguém já tentou isso com sucesso para que eu possa ter a certeza que é apenas esquisito algo em meu próprio aplicativo?
Solução
Você pode definir o editor -se, assim:
// minimum of four digits
mySpinner.setEditor(new JSpinner.NumberEditor(mySpinner, "0000"));
"0000"
é uma string DecimalFormat
especificando quatro dígitos, com zeros como necessário; "####"
especifica quatro dígitos, mas não de zero-pad.
tampas A DecimalFormat
documentação API formatação de cordas com mais detalhes.
Outras dicas
Referindo-se às javadocs, JSpinner tem um setEditor (JComponent) método . Usar isso para definir o seu costume JFormattedTextField, com seu formato personalizado.