内部和外部ChangeEvent(JSlider w / Change Listener)

时间:2012-08-14 18:42:04

标签: java swing

据我所知,如果我向ChangeListener组件添加JSlider,则会触发ChangeEvent事件,无论上述滑块的值是否已由内部更改程序或用户通过GUI外部。

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

无论是在内部还是外部更改ChangeEvent值,您始终会触发JSlider。你总是可以有一个类成员变量来指示改变的位置......