Search code examples
javaswingnetbeans6.8jspinner

JSpinner without negative values


I'm building a small application in netbeans,I use a JSpinner component to set the quantity of a product.How can I set the spinner to take only positive values?Is there a choice inside Netbeans that I can set or a method for the JSpinner?

EXTRA:

spinner.setModel(new SpinnerNumberModel(0, 0, 20, 1));


Solution

  • for JSpinner you have to implements SpinnerNumberModel

    import javax.swing.*;
    
    public class SpinnerModelTest {
    
        public static void main(String[] args) {
            SwingUtilities.invokeLater(new Runnable() {
    
                public void run() {
                    new SpinnerModelTest().makeUI();
                }
            });
        }
    
        public void makeUI() {
            SpinnerModel modeltau = new SpinnerNumberModel(0.0002, 0.0001, 100.0000, 0.0001);
            JSpinner spinner = new JSpinner(modeltau);
            ((JSpinner.NumberEditor) spinner.getEditor()).getFormat().setMaximumFractionDigits(4);
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(spinner);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    }