【问题标题】:How to set JSpinner as non editable?如何将 JSpinner 设置为不可编辑?
【发布时间】:2011-02-23 12:45:23
【问题描述】:

我正在使用JSpinner 创建时间选择器。 JSpinner 中的文本是可编辑的。但我想将JSpinner 设置为不可编辑,因为有机会给出无效值。谁能帮帮我?

【问题讨论】:

  • 您能否评论 jfpoilpret 的回答是否有帮助?如果是的话,接受它是正确的吗?

标签: java swing jspinner


【解决方案1】:

尝试以下方法:

JSpinner spinner = ...;
((DefaultEditor) spinner.getEditor()).getTextField().setEditable(false);

只要您没有通过调用 spinner.setEditor(...) 自己更改微调器编辑器,这应该可以工作。

告诉我们这是否有帮助。

【讨论】:

  • 我修改了你的代码,它工作正常。 JSpinner ampm=new JSpinner(); JFormattedTextField ampmspin=((JSpinner.DefaultEditor)ampm.getEditor()).getTextField(); ampmspin.setEditable(false);非常感谢…………
  • 我必须在设置微调器的列表模型后添加它。然后它起作用了。
  • 当我尝试这个时,仍然可以通过单击箭头来编辑微调器!
【解决方案2】:

短一点:

JSpinner spinner = new JSpinner();
spinner.setEditor(new JSpinner.DefaultEditor(spinner));

【讨论】:

    【解决方案3】:

    当我尝试这个时,仍然可以通过单击箭头来编辑微调器! – 耶利弗

    您可以尝试将步长设置为 0:

    mySpinner.setModel(new SpinnerNumberModel(yourDefaultDisplayValue, minValue, maxValue, step));

    您可以探索其他微调器模型并使用我猜的相同技巧。

    【讨论】:

      猜你喜欢
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-17
      • 2023-02-10
      • 1970-01-01
      • 2016-06-27
      相关资源
      最近更新 更多