JSpinner编号编辑器显示

时间:2016-10-31 09:17:08

标签: java swing number-formatting jspinner

    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);

您好,这是一个简单的java JFrame来显示一个数字微调器。

第一个数字显示为'00'。我希望它显示为0.是否可能? 下一个数字显示为“01”。我希望被显示为1.是否可能?

1 个答案:

答案 0 :(得分:2)

您使用JSpinner指定了NumberFormat自己的号码外观,以使用最多两个数字

m_numberFormatter.setMaximumIntegerDigits(2);

并且至少已设定的最大值为2

m_numberFormatter.setMinimumIntegerDigits(m_numberFormatter.getMaximumIntegerDigits());

这导致总是使用两位数。因此101,依此类推。

也许这就是你想要的:

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