JSpinner 数字编辑器显示

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

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

第一个数字显示为“00”。我希望它显示为 0。这可能吗? 下一个数字显示为“01”。我想显示为1。可以吗?

您使用 NumberFormat 指定了自己 JSpinner 的出现次数,以使用最多两个数字

m_numberFormatter.setMaximumIntegerDigits(2);

对于最小值,已经设置的最大值是两个

m_numberFormatter.setMinimumIntegerDigits(m_numberFormatter.getMaximumIntegerDigits());

这导致始终使用两位数。所以 101 等等。

也许这就是您想要的:

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