user4752891
user4752891

Reputation:

JSpinner number editor display

    JFrame frame=new JFrame();
    frame.setSize(500, 500);        
    JPanel panel =new JPanel();
    panel.setSize(200, 200);
    frame.add(panel);


    JSpinner m_numberSpinner=new JSpinner();
    m_numberSpinner.setSize(100, 100);
    SpinnerNumberModel l_spinnerModel = new SpinnerNumberModel(0, 0, 999, 1);
    m_numberSpinner = new JSpinner(l_spinnerModel);
    JSpinner.NumberEditor l_editor = new JSpinner.NumberEditor(m_numberSpinner);
    m_numberSpinner.setEditor(l_editor);

    NumberFormat m_numberFormatter = l_editor.getFormat();
    m_numberFormatter.setMaximumIntegerDigits(2);
    m_numberFormatter.setMinimumIntegerDigits(m_numberFormatter.getMaximumIntegerDigits());     
    panel.add(m_numberSpinner);
    frame.setVisible(true);

Hello, this is a simple java JFrame to show a number spinner.

The first number is shown as '00'. I want it be show as 0. is it possible? The next number is shown as '01'. I want to be shown as 1. is it possible?

Upvotes: 0

Views: 252

Answers (1)

ArcticLord
ArcticLord

Reputation: 4039

You specified the number appearence of your JSpinner yourself with NumberFormat to use maximal two numbers

m_numberFormatter.setMaximumIntegerDigits(2);

and for minimum the already set maximum value which is two

m_numberFormatter.setMinimumIntegerDigits(m_numberFormatter.getMaximumIntegerDigits());

That results in always using two digits. So 1 is 01 and so on.

Maybe this is what you want:

m_numberFormatter.setMaximumIntegerDigits(2);
m_numberFormatter.setMinimumIntegerDigits(1);

Upvotes: 2

Related Questions