2010-04-20 73 views
0

我有一個包含JButton的類。這不能改變。Java-Swing:更改ActionListener中的getSource()

問題是這樣的:actionListener調用getSource()並獲取JButton,而不是容器類。

在添加actionListener之前,我可以更改getSource檢索的內容嗎? 或者JButtons是否有對其容器的變量引用?

我不能讓一個類擴展一個JButton。它造成了繪圖的錯誤...我的一週的故事。

+1

我不明白的問題。你如何點擊一個按鈕,並因此生成一個ActionEvent,如果它沒有被添加到GUI?聽起來像一個奇怪的設計給我。我也不明白爲什麼擴展JButton會導致繪畫問題。你再一次在你的代碼中做了一些奇怪的事情。你首先需要解決這些問題。發佈你的SSCCE:http://sscce.org – camickr 2010-04-20 15:32:03

回答

1

JButton.getParent()

+0

它包含的對象不是一個Component,它只是存儲一個JButton對象以及其他數據。 getParent因此不會返回包含JButton的Object。 任何你知道有一個按鈕引用的東西,或重寫JButton的ActionListener functinos,提供一個「源」? – Brandon 2010-04-20 03:56:48

+0

如何設置名稱(setName)或actionCommand(setActionCommand)。然後使用它從全局可訪問的映射中檢索容器? – 2010-04-20 04:11:10

1

這是好多了上下文到監聽器,而不是使用getSource