2014-10-27 23 views
0

我有一個帶有按鈕和其他控件的主GUI類。 當其中一個按鈕(比如說btnGo)被選中時,它將被禁用,並啓動一個SwingWorker(當前是不同類的一部分)來執行某些操作。SwingWorker在主類中改變按鈕

我希望在SwingWorker完成時再次啓用該按鈕。

如何讓我的「孩子班」(缺乏更好的詞)更新我的主要GUI類中的控件?

回答

1

將參考按鈕傳遞給您的SwingWorker子類的構造函數。然後,在.done()方法中,您可以重新啓用它。

.done()方法在GUI線程上運行,因此它可以安全地更改按鈕狀態。

另一種方法是將該按鈕註冊爲SwingWorkerPropertyChangeListener,以便在工作完成時得到通知。