Chinaunix

标题: 请教:CheckboxGroup不能响应事件的问题 [打印本页]

作者: 白色乌鸦    时间: 2004-10-11 10:00
标题: 请教:CheckboxGroup不能响应事件的问题
书上说: CheckboxGroup 不是在.java.awt.×的包中,它是Object的直接子类,所以按钮组不能响应事件

问:为什么不在java.awt.×包中,就不能够响应事件能,是因为不能注册监听器的原因 还是 产生不了事件呀? 那有是为什么呢?     

我很菜, 问出这样的问题大家不要骂我哈   
作者: sakulagi    时间: 2004-10-11 20:37
标题: 请教:CheckboxGroup不能响应事件的问题
似乎应该是不是Component的子类,所以不能响应事件吧?
和在哪个包里没有什么关系。
事件是由程序的主消息循环不停的从系统消息队列里取消息然后沿着Component Tree来dispatch的。
作者: 白色乌鸦    时间: 2004-10-12 09:43
标题: 请教:CheckboxGroup不能响应事件的问题
这跟在不在awt包中没关系,而是它直接从object继承,没有继承awt中大多数控件所继承的那些个接口,所以它就不具有那些接口的功能。自然就没有注册和处理事件的功能
如果你extend checkboxgroup,并让其继承某些接口,她就可以注册事件和处理事件了。

有人这样解释,是这样吗?
作者: sakulagi    时间: 2004-10-12 12:46
标题: 请教:CheckboxGroup不能响应事件的问题
我认为不对,你可以看一下java.awt里面的控件类实现的接口,没有哪个接口可以保证得到消息。
而且awt这种GUI类库,消息都是从Native Peer得来得,并不是有什么java接口,所以才有消息。
作者: 白色乌鸦    时间: 2004-10-12 13:50
标题: 请教:CheckboxGroup不能响应事件的问题
谢谢

我想再问一下,在哪里可以找到关于消息传递(我不知道怎么更好表达,就

是java那些个类库怎样得到消息)具体的知识呀?我不知道怎样找到这些知

识。

再次感谢答复。
作者: sakulagi    时间: 2004-10-12 13:53
标题: 请教:CheckboxGroup不能响应事件的问题
你在actionPerformed()之类的回调函数里加个断点,看一下call stack 就可以看到:
是一个后台的AWT的线程在不停的从消息队列里读消息,然后分发给相应的Component的子类。
作者: 白色乌鸦    时间: 2004-10-12 14:19
标题: 请教:CheckboxGroup不能响应事件的问题
谢谢了 ^_^

我再次确认一下哈,你这么一说,我想你的意思是不是这样的,操作产生的事件,首先是在系统的消息队列中,后台的awt的线程在不停的从消息队列里读取消息,判断而后分发给相应的Component的子类,因为checkboxgroup不在判断之内,所以产生的事件,它是处理不了的。
是这样吗?
作者: sakulagi    时间: 2004-10-12 16:39
标题: 请教:CheckboxGroup不能响应事件的问题
是的。AWT的EventDispatchingThread不知道CheckboxGroup的存在
作者: 白色乌鸦    时间: 2004-10-12 17:18
标题: 请教:CheckboxGroup不能响应事件的问题
彻底明白了,谢谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2