Pessoal, tô tomando uma surra do JSpinner.
Eu quero um JSpinner numérico que tenha limite de 1 a 5 e que só permita digitar valores numéricos dentro dele.
Pra criar o limite eu fiz assim e funcionou perfeitamente:
SpinnerModel model = new SpinnerNumberModel(1, 1, 5, 1);
spnColunas.setModel(model);
Então agora, a encrenca era que ele deixava digitar qq coisa no seu editor, então consegui resolver isso, fazendo assim:
[code]JFormattedTextField ftf = new JFormattedTextField();
ftf.setDocument(new FiltroNumero(1)); // FiltroNumero faz um filtro em que aceita apenas números, no caso, de acordo com o parâmetro 1, ele permite apenas 1 dígito
ftf.setBorder(null);
spnColunas.setEditor(ftf);[/code]
Tentei usar a forma tradicional de filtro do JSpinner, fazendo como abaixo, só que não funcionou:
spnColunas.setEditor(new JSpinner.NumberEditor(spnColunas, "#"));
Enfim, tava tudo lindo, só que isoladamente! Eu não consigo fazer funcionar as duas coisas, entendem? Ou eu setto o Editor dele, ou eu setto o Model, qdo eu setto o Editor o Model deixa de funcionar. E ai? O que estou fazendo de errado?!
Eu segui exs desse link:
http://java.sun.com/docs/books/tutorial/uiswing/components/spinner.html