看板 java 關於我們 聯絡資訊
※ 引述《slalala (不再嘴砲了)》之銘言: : A1 A2 .... : / \ / \ : B1-1 B1-2 B2-1 B2-2 ..... : 我想請問一下 : 如何讓Jframe這個class內的的actionlistener能偵測到 B物件上的Button的event呢???? 還是用回文的好了, ActionListener 本身是一個介面。 你要說JFrame的class ,倒不如說是 繼承JFrame的class 你要說繼承JFrame的class的ActionListener, 倒不如說是 實做ActionListener 且 繼承JFrame的class。 (還是你的意思是JFrame中含有實做ActionListener的成員?) 在事件聆聽的角色上, 它只扮演ActionListener的角色,跟JFrame的角色完全沒有關係, 所以說只有ActionListener會被聆聽,這部份是屬於介面的概念。 ──────────────────────────────── 事件模型採用的是觀察者模式, AbstractButton.addActionListener(ActionListener) 這是JButton的原型,它只在乎 ActionListener的角色。 不管用任何方式,你只要餵給它一個ActionListener, 也不管他原型是否有繼承其他類別, 當事件發生的時候,他會發通知給他的上游,他的上游要負責去把事件接住。 所以你說JFrame要怎麼接事件,當然就是實做ActionListener, 然後想辦法餵給B上得button做Listener啊。 但是這跟JFrame有關係嗎? 至少在事件觸發的角色而言,兩者是沒有關係的。 只不過往往因為在觸發之後方便處理元件的更換,所以將這兩者結合而已。 --  ▄▅▆▇███▇▆▅▄▃        ╰┼╯─╮ ╮         ◥███████████◣       ╰┼╯=│=│         ◥██████───────    *. ╯  ╯ ╯ の 物 語 .*  ◥███████──────◣ ~ ◢◣             ◢◣  ◥██████───────◤   ◥◤  空白的世界.翼 ◥◤  ◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂telnet://tony1223.no-ip.info -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.76.250 ※ 編輯: TonyQ 來自: 59.115.76.250 (03/01 20:06)
slalala:Jrame已經implements ActionListener但是接不到button事件 03/02 01:02
slalala:我的作法只有想辦法在Jframe上餵給B的button listener嗎? 03/02 01:03
TonyQ:不管是不是同一個Component或Frame 本來就是要add才算數囉 03/02 02:06
slalala:我是在B class add的話該怎麼作呢?? 因為event會再jframe 03/02 02:11
TonyQ:B_child.addActionListener( A_instance) 03/02 02:18