如果我在JFrame
上實現了一個動作事件,它有一些按鈕,它給我 通過getSource
點擊的按鈕,但如果我在同一個框架上實現鼠標事件 它不會引起我的按鈕事件,但只爲那JFrame
。在AWT事件模型中冒泡?
爲什麼?
事件冒泡似乎只適用於動作事件,因此Swing實現了什麼模型?
哪種聽衆類型以冒泡的方式工作?
如果我在JFrame
上實現了一個動作事件,它有一些按鈕,它給我 通過getSource
點擊的按鈕,但如果我在同一個框架上實現鼠標事件 它不會引起我的按鈕事件,但只爲那JFrame
。在AWT事件模型中冒泡?
爲什麼?
事件冒泡似乎只適用於動作事件,因此Swing實現了什麼模型?
哪種聽衆類型以冒泡的方式工作?
在AWT中冒泡的事件僅適用於鼠標事件,並且只有在子組件上沒有鼠標偵聽器時才適用。
如果您有一個JComboBox
,這通常由PL & F帶有一個文本字段和一個按鈕組件來實現,這可能會讓您非常困惑。你可能想查找「玻璃窗格」。
我建議儘可能忽略遏制層次結構。還要創建知道其上下文和點使用getSource
的聽衆。並且不要不必要地擴展類(如JFrame
,JPanel
和Thread
)。
但點擊按鈕是一個ActionEvent ... – xdevel2000 2010-09-17 15:53:12
@ xdevel2000 JFrame'確實沒有'addActionListener'。 – 2010-09-19 13:17:34
我給Action添加了一個ActionListener或者一個MouseListener到按鈕,那麼事件的來源就是這個按鈕。如果您獲得了不同的結果,請發佈您的SSCCE(http://sscce.org)來證明問題,因爲問題出在您的代碼上,我們無法猜測您可能會做錯什麼。 – camickr 2010-09-17 16:04:16
交叉發佈到http://groups.google.com/group/comp.lang.java.programmer/browse_frm/thread/8cd7b17672d24caa – trashgod 2010-09-18 14:36:05