據我所知,如果我將ChangeListener
添加到JSlider
組件,則會觸發一個事件,無論上述滑塊的值是由程序在內部或者由用戶通過GUI在外部進行。內部和外部ChangeEvent(帶有變更偵聽器的JSlider)
有沒有辦法讓ChangeListener
識別JSlider
的值的外部變化?也就是說,我希望能夠在整個程序過程中多次內部設置滑塊的值,而不會觸發事件。
據我所知,如果我將ChangeListener
添加到JSlider
組件,則會觸發一個事件,無論上述滑塊的值是由程序在內部或者由用戶通過GUI在外部進行。內部和外部ChangeEvent(帶有變更偵聽器的JSlider)
有沒有辦法讓ChangeListener
識別JSlider
的值的外部變化?也就是說,我希望能夠在整個程序過程中多次內部設置滑塊的值,而不會觸發事件。
一個選項是在您的監聽器中保留一個標誌,指示接收到的事件是否被外部觸發。
當您更改該值時,首先更新該標誌的值,避免您的偵聽器對您剛纔所做的更改作出反應。之後,您恢復標誌的狀態。
無論您是在內部還是外部更改JSlider
值,您總是會觸發ChangeEvent
。你總是可以有一個類成員變量來指明從哪裏進行更改...
我想這會起作用,但希望能夠更輕鬆地區分事件的來源。 – richard 2012-08-14 18:52:59