0

据我所知,如果我将 a 添加ChangeListenerJSlider组件中,则ChangeEvent无论上述滑块的值是由程序内部更改还是由用户通过 GUI 在外部更改,都会触发一个事件。

有没有办法只ChangeListener识别JSlider' 值的外部变化?也就是说,我希望能够在整个程序过程中多次在内部设置滑块的值,而不会触发事件。

4

2 回答 2

2

一个选项是在您的侦听器中保留一个标志,指示接收到的事件是否是外部触发的。

当您更改值时,您首先更新标志的值,避免您的侦听器对您刚刚所做的更改做出反应。之后,您恢复标志的状态。

于 2012-08-14T18:51:05.003 回答
1

无论您在内部还是外部ChangeEvent更改值,您总是会触发 a 。JSlider您总是可以有一个类成员变量来指示从哪里进行更改...

于 2012-08-14T18:52:32.627 回答