7

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

4

2 回答 2

5

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

于 2013-01-14T14:23:04.000 回答
1

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


如果问题出在 aChangeListener上,请尝试扩展 JSlider 组件并添加一个新方法来接收新值和发布它的人(例如,使用 int 代码或枚举),在您进行自定义后派生值的设置真正的 setValue 方法的逻辑。

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

于 2013-01-14T14:17:47.637 回答