比如我在用Delphi编写的应用程序的界面上单击鼠标,或按下某键,将会触发某事件,Windows将会发送一个消息给这个Delphi应用程序。
我想问的是,消息事件机制只是Windows有的吗?我用Java编写一个应用程序,我单击鼠标或按下某键,也会触发某个事情,那Java的消息事件又是怎么回事呢?Java的消息事件机制应该不会依赖Windows吧?那消息机制与操作系统,与某一计算机语言有什么联系呢?
我想问的是,消息事件机制只是Windows有的吗?我用Java编写一个应用程序,我单击鼠标或按下某键,也会触发某个事情,那Java的消息事件又是怎么回事呢?Java的消息事件机制应该不会依赖Windows吧?那消息机制与操作系统,与某一计算机语言有什么联系呢?
说说我的理解,即事件循环机制和os没有必然的关联,例如linux下的C编程本身没有时间循环机制,但是minigui却能模拟出类似windows下的时间循环机制出来。依此类推,java的这套事件捕捉机制估计是jvm模拟出来的
系统将事件发送给JVM的EventQueue,然后JVM使用EventDispatchThread,进行消息处理。
JAVA内部产生的消息也使用EventQueue进行处理。
AWT的事件(MouseEvent等)处理是系统直接发送给各个控件的。
SWING的事件是发送给界面的Panel的,然后进行事件分解。
连接这些原理可以做自动测试了