如何检查是否手动设置了值而不是setValue(JSlider,JSpinner)?

时间:2013-01-14 14:12:44

标签: java swing jslider jspinner setvalue

如何检查JSlider或JSpinner的值是通过图形界面设置的,而不是通过setValue( int n)方法设置的?

2 个答案:

答案 0 :(得分:5)

每当您以编程方式调用setValue(调用它之前)时,将布尔值设置为true,并在完成事件处理后将其重置为false。

答案 1 :(得分:1)

在内部,调用'setValue'。当用户通过实现ChangeListener来捕获该事件来移动滑块的旋钮时,您可以尝试捕获事件。另外,请记住移动旋钮会触发许多更改事件,因此如果您对滑块的最终值感兴趣,请在评估为getValueIsAdjusting时使用false


如果问题是ChangeListener,请尝试扩展JSlider组件并添加一个新方法,该方法接收新值并发出它(例如,使用int代码或枚举),派生设置将自定义逻辑设置为真正的setValue方法后的值。

在你的情况下,如果我没有弄错的话,如果某个组件调用它,你会想要阻止setValue的调用。