2

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

4

4 回答 4

2

您可以使用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);
    }

如您所见,只需 makecreateNextButton()createPreviousButton()return null

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

于 2016-06-11T18:04:17.003 回答
0

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

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

          p.setEnabled(false);

} 

假设您想按下一个按钮,而用户根本无法使用 jspinner,这是对更多操作的提示,您也可以对其进行修改

于 2013-04-29T17:32:48.167 回答
0

您还可以允许使用 jspinner 直到使用特定值

   if(spinner.getValue()==10){
       //show error message and 
       spinner.setEnabled(false);
   }
于 2013-04-29T17:36:05.900 回答
0

如果使用的 UI 类派生自BasicSpinnerUI,则可以使用以下命令删除箭头按钮:

    for (Component component : spinner.getComponents()) {
        if (component.getName() != null && component.getName().endsWith("Button")) {
            spinner.remove(component);
        }
    }
于 2019-12-10T20:44:30.823 回答