禁用JSpinner上的向上和向下箭头按钮

时间:2013-04-29 17:21:24

标签: java swing jspinner

我有一个JSpinner,我希望在启用编辑时控制它。使用键盘很容易,但是那边的那些小箭头小部件怎么样?我甚至无法在JSpinner源代码或其任何封闭的类中找到对它们的引用。

4 个答案:

答案 0 :(得分:1)

您可以使用setUI()方法隐藏Jspinner箭头。

public void hideSpinnerArrow(JSpinner spinner) {
        Dimension d = spinner.getPreferredSize();
        d.width = 30;
        spinner.setUI(new BasicSpinnerUI() {
            protected Component createNextButton() {
                return null;
            }

            protected Component createPreviousButton() {
                return null;
            }
        });
        spinner.setPreferredSize(d);
    }

如您所见,只需将createNextButton()createPreviousButton()返回null

因为我们使用了BasicUI所以我们必须再次设置Spinner大小。我使用了PreferredSize

答案 1 :(得分:0)

你无法控制这两个箭头按钮,但你可以这样做

    private void buttonActionPerformed(java.awt.event.ActionEvent evt) {                                  

          p.setEnabled(false);

} 

假设你想要按下一个按钮而且用户根本无法使用jspinner,这是一个提示你可以修改它的更多动作

答案 2 :(得分:0)

您还可以使用

来使用jspinner直到特定值
   if(spinner.getValue()==10){
       //show error message and 
       spinner.setEnabled(false);
   }

答案 3 :(得分:0)

如果使用的UI类是从BasicSpinnerUI派生的,则可以通过以下方式删除箭头按钮:

    for (Component component : spinner.getComponents()) {
        if (component.getName() != null && component.getName().endsWith("Button")) {
            spinner.remove(component);
        }
    }