2012-08-14 27 views
0

據我所知,如果我將ChangeListener添加到JSlider組件,則會觸發一個事件,無論上述滑塊的值是由程序在內部或者由用戶通過GUI在外部進行。內部和外部ChangeEvent(帶有變更偵聽器的JSlider)

有沒有辦法讓ChangeListener識別JSlider的值的外部變化?也就是說,我希望能夠在整個程序過程中多次內部設置滑塊的值,而不會觸發事件。

回答

2

一個選項是在您的監聽器中保留一個標誌,指示接收到的事件是否被外部觸發。

當您更改該值時,首先更新該標誌的值,避免您的偵聽器對您剛纔所做的更改作出反應。之後,您恢復標誌的狀態。

+0

我想這會起作用,但希望能夠更輕鬆地區分事件的來源。 – richard 2012-08-14 18:52:59

1

無論您是在內部還是外部更改JSlider值,您總是會觸發ChangeEvent。你總是可以有一個類成員變量來指明從哪裏進行更改...

相關問題