今天看鼠标适配器MouseAdapter的代码,看晕了,因为它implements MouseListener,MouseListener又extends EventListener,用到的MouseEvent它extends InputEvent,InputEvent又extends ComponentEvent………………
何时是个尽头啊……我怀疑自己对接口这东西了理解方向了……高手请赐教,说明一下个中原理,小弟感激不尽!!
何时是个尽头啊……我怀疑自己对接口这东西了理解方向了……高手请赐教,说明一下个中原理,小弟感激不尽!!
楼主【kudosiyin】截止到2008-07-01 09:04:30的历史汇总数据(不包括此帖):
发帖数:19 发帖分:690
结贴数:19 结贴分:690
未结数:0 未结分:0
结贴率:100.00% 结分率:100.00%
敬礼!
JAVA本身没有五官,只不过你给它加上五官了,还要告诉它到底听到看到某事以后要做什么反映罢了。
明白点了吗?
这与JVM的事件进程有关.JVM启动时,如果发现有SWING,AWT等组件被应用,则建立事件进程.
事件进程监视着应用程序中所有的组件(Component),如果在Component上发生了事件,那么就会
触发相应的事件处理方法.以上述MouseAdapter为例,当鼠标有动作时,它为什么implements MouseListener,sagezk已经在九楼说得很明了
但是这个MouseListener必须具有处理事件的功能,否则也没有什么意义了,所以它又extends EventListener,比如是双击还是单击,是击左键还是击右键但是MouseEvent如果不能被事件线程捕获(即不能input),那么就毫无意义了,所以它又必须具有input的属性,必须extends InputEvent那么这个Event发生的目标是什么呢?是组件,那么extends了ComponentEvent就可以对组件进行动作了,这个表示的是作用的目标综上,以上所有的implements及extends的目的都是为了使事件由鼠标发生,并经过正确的路径被事件进程捕获,作用于正确的目标
2. AWT 线程是窗体显示出来后才启动的(而非 JVM 启动后)。