首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个按钮,单击下,可以算是ActionEvent. 也可以算 MouseEvent吗?解决办法

2012-01-19 
一个按钮,单击下,可以算是ActionEvent. 也可以算 MouseEvent吗?相应的,它们的接口也改成 ActionListener

一个按钮,单击下,可以算是ActionEvent. 也可以算 MouseEvent吗?
相应的,它们的接口也改成 ActionListener 和 MouseListener吗?

[解决办法]
可以。
按照字面意义上来说,鼠标事件应该也是属于动作事件的。事实证明,可以这么替换,但效果不变。
但是,ActionEvent却是和ComponentEvent是平行类,但是MouseEvent是ComponentEvent的子类的子类。
所以,LZ最好对照API把它们的结构关系搞清楚。

[解决办法]
个人认为是这样:
单击按钮可以生成多个事件:ActionListener MouseListener 等。但是如果要用MouseListener的话就要定义所有的mouse事件,MousePressed,MouseReleased...,或者使用匿名类关注其中一个事件。
[解决办法]
对点击按钮来说,lz可以这么理解。不过正如2楼说的ActionEvent和MouseEvent之间没有直接联系,因为一个是语义类事件一个是底层事件
[解决办法]
鼠标按钮按下用才 MouseListener
[解决办法]
不是。是说,你按鼠标,首先,是鼠标动作,但是,那也是标准的动作。所以两个都有用。
[解决办法]

探讨
按下也是激活了Button了
是吧?

[解决办法]
探讨
你要分清鼠标上的按钮(真实的)和窗口上的按钮(虚拟的),窗口上按钮被你按了(不一定用鼠标,还能用空格键按)引发的是 ActionListener 相关的事件,鼠标在哪个组件上按了引发的是 MouseListener 相关的事件,与 MouseListener 相比 ActionListener 更高级些更抽象些,它把很多各种操作都当成一个动作(Action)去看待,从而引发动作事件。

[解决办法]
可以考虑使用适配器模式实现的~
只是添加不同的监听器就可以了
然后实现不同监听时实现的方法

热点排行