比如我在用Delphi编写的应用程序的界面上单击鼠标,或按下某键,将会触发某事件,Windows将会发送一个消息给这个Delphi应用程序。
我想问的是,消息事件机制只是Windows有的吗?我用Java编写一个应用程序,我单击鼠标或按下某键,也会触发某个事情,那Java的消息事件又是怎么回事呢?Java的消息事件机制应该不会依赖Windows吧?那消息机制与操作系统,与某一计算机语言有什么联系呢?

解决方案 »

  1.   

    java本身有个虚拟机,所有的消息机制都是发给此虚拟机的,然后通过虚拟机和操作系统交互
      

  2.   

    事件是和操作系统相关的。Java是靠JVM去处理不同的操作系统的事件,这样上层的Java代码就不会再依赖于操作系统了。这功劳都靠JVM来做的。JVM就像一个转换装置,有不同版本的JVM(win、Linux等)去负责转换不同的操作系统,以屏蔽操作系统带来的区别。
      

  3.   

    Delphi的消息有两种,一种是VCL维护的,通过插入指针的方式实现,另一种是直接调用WindowsAPI发送消息,然后通过某个函数来接收并分发到子类。
    Java的消息,一般以Listener为后缀,通过重载接口进行接收和回调。(不知道是不是穷举内部数组来派发。)
    (以上纯属个人见解)那消息机制与操作系统,与某一计算机语言有什么联系呢?
    --------------------------------------------------
    消息机制是程序与操作系统交互的模式。某一计算机语言是这种模式的实现。