作者TonyQ (骨头)
看板java
标题Re: [问题] 关於事件处理
时间Sat Mar 1 20:06:26 2008
※ 引述《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)
1F:推 slalala:Jrame已经implements ActionListener但是接不到button事件 03/02 01:02
2F:→ slalala:我的作法只有想办法在Jframe上喂给B的button listener吗? 03/02 01:03
3F:→ TonyQ:不管是不是同一个Component或Frame 本来就是要add才算数罗 03/02 02:06
4F:推 slalala:我是在B class add的话该怎麽作呢?? 因为event会再jframe 03/02 02:11
5F:→ TonyQ:B_child.addActionListener( A_instance) 03/02 02:18