ja procurei e nao achei uma resposta satisfatoria, como faço para restringir meu spinner para q ele aceite apenas numeros?
Jspinner aceite apenas numeros
I
1 Resposta
E
Mais fácil dar um exemplo que explicar.
package guj;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.text.DecimalFormatSymbols;
import java.util.Locale;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
public class ExemploJSpinnerFormatado extends JFrame {
private JPanel contentPane;
private JPanel pnlPonto;
private JSpinner spinnerPonto;
private JPanel pnlVirgula;
private JSpinner spinnerVirgula;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ExemploJSpinnerFormatado frame = new ExemploJSpinnerFormatado();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public ExemploJSpinnerFormatado() {
setTitle("Exemplo JSpinner Formatado");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 360, 195);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
contentPane.add(getPnlPonto(), BorderLayout.NORTH);
contentPane.add(getPnlVirgula(), BorderLayout.SOUTH);
}
private JPanel getPnlPonto() {
if (pnlPonto == null) {
pnlPonto = new JPanel();
pnlPonto.setBorder(new TitledBorder(null, "JSpinner com Ponto Decimal", TitledBorder.LEADING, TitledBorder.TOP, null,
null));
pnlPonto.add(getSpinnerPonto());
}
return pnlPonto;
}
private JSpinner getSpinnerPonto() {
if (spinnerPonto == null) {
spinnerPonto = new JSpinner();
spinnerPonto.setModel(new SpinnerNumberModel(0.0, 0.0, 100.0, 0.01));
JSpinner.NumberEditor ne_spinnerPonto = new JSpinner.NumberEditor(spinnerPonto, "0.00");
ne_spinnerPonto.getFormat().setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(Locale.US));
spinnerPonto.setEditor(ne_spinnerPonto);
}
return spinnerPonto;
}
private JPanel getPnlVirgula() {
if (pnlVirgula == null) {
pnlVirgula = new JPanel();
pnlVirgula.setBorder(new TitledBorder(null, "JSpinner com V\u00EDrgula Decimal", TitledBorder.LEADING,
TitledBorder.TOP, null, null));
pnlVirgula.add(getSpinnerVirgula());
}
return pnlVirgula;
}
private JSpinner getSpinnerVirgula() {
if (spinnerVirgula == null) {
spinnerVirgula = new JSpinner();
spinnerVirgula.setModel(new SpinnerNumberModel(0.0, 0.0, 100.0, 0.01));
JSpinner.NumberEditor ne_spinnerVirgula = new JSpinner.NumberEditor(spinnerVirgula, "0.00");
ne_spinnerVirgula.getFormat().setDecimalFormatSymbols(DecimalFormatSymbols.getInstance(new Locale("pt", "BR")));
spinnerVirgula.setEditor(ne_spinnerVirgula);
}
return spinnerVirgula;
}
}
Atenção - não havia percebido, mas o exemplo que tenho aqui não inibe o usuário de digitar caracteres não- numéricos. Acho que é necessário tambem mexer no Document desse JSpinner 
Criado 20 de março de 2013
Ultima resposta 20 de mar. de 2013
Respostas 1
Participantes 2
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo