JSpinner数字编辑器显示

Posted

技术标签:

【中文标题】JSpinner数字编辑器显示【英文标题】:JSpinner number editor display 【发布时间】:2016-10-31 09:17:08 【问题描述】:
    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】:

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

m_numberFormatter.setMaximumIntegerDigits(2);

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

m_numberFormatter.setMinimumIntegerDigits(m_numberFormatter.getMaximumIntegerDigits());

这导致总是使用两位数。所以101 等等。

也许这就是你想要的:

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

【讨论】:

以上是关于JSpinner数字编辑器显示的主要内容,如果未能解决你的问题,请参考以下文章

JSpinner 编辑器语言环境

从 JSpinner 获取日期并放入具有 DATE 格式的 MySQL 数据库列

Java:如何禁用 JSpinner 哔声

在 JSpinner 中为 DateEditor 设置步骤

接受 JSpinner 中的测量单位作为输入

gui插件JSpinner获取数值