Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
据我所知,如果我将 a 添加ChangeListener到JSlider组件中,则ChangeEvent无论上述滑块的值是由程序内部更改还是由用户通过 GUI 在外部更改,都会触发一个事件。
ChangeListener
JSlider
ChangeEvent
有没有办法只ChangeListener识别JSlider' 值的外部变化?也就是说,我希望能够在整个程序过程中多次在内部设置滑块的值,而不会触发事件。
一个选项是在您的侦听器中保留一个标志,指示接收到的事件是否是外部触发的。
当您更改值时,您首先更新标志的值,避免您的侦听器对您刚刚所做的更改做出反应。之后,您恢复标志的状态。
无论您在内部还是外部ChangeEvent更改值,您总是会触发 a 。JSlider您总是可以有一个类成员变量来指示从哪里进行更改...