据我所知,如果我向ChangeListener
组件添加JSlider
,则会触发ChangeEvent
事件,无论上述滑块的值是否已由内部更改程序或用户通过GUI外部。
有没有办法只让ChangeListener
识别出JSlider
值的外部变化?也就是说,我希望能够在整个程序过程中多次在内部设置滑块的值,而不会触发事件。
答案 0 :(得分:2)
一个选项是在监听器中保留一个标志,指示接收的事件是否是外部触发的。
更改值时,首先更新标志的值,避免听众对刚才所做的更改做出反应。之后,您将恢复标志的状态。
答案 1 :(得分:1)
无论是在内部还是外部更改ChangeEvent
值,您始终会触发JSlider
。你总是可以有一个类成员变量来指示改变的位置......