如何检查JSlider或JSpinner的值是通过图形界面设置的,而不是通过setValue( int n)
方法设置的?
答案 0 :(得分:5)
每当您以编程方式调用setValue(调用它之前)时,将布尔值设置为true,并在完成事件处理后将其重置为false。
答案 1 :(得分:1)
在内部,调用'setValue'。当用户通过实现ChangeListener来捕获该事件来移动滑块的旋钮时,您可以尝试捕获事件。另外,请记住移动旋钮会触发许多更改事件,因此如果您对滑块的最终值感兴趣,请在评估为getValueIsAdjusting
时使用false
。
如果问题是ChangeListener
,请尝试扩展JSlider组件并添加一个新方法,该方法接收新值并发出它(例如,使用int代码或枚举),派生设置将自定义逻辑设置为真正的setValue方法后的值。
在你的情况下,如果我没有弄错的话,如果某个组件调用它,你会想要阻止setValue
的调用。