小弟在这请教坛子里的大神。我对java的事件处理模型有了一点了解,现在就想知道java事件触发的原理。
比如,我在一个swing组件上点下鼠标后,java怎么接收到我点鼠标的事件(比如是操作系统通知JVM?)。
希望知道得详细一点。
真心期盼各位大神指点。

解决方案 »

  1.   

    javaGUI系统依赖于操作系统API,拿windows系统举例,需要依赖于Wind32 API,只不过做了层封装,我看过一点Win32 API代码,在WinMain函数中需要写一个消息循环用来接收Windows上传过来的消息,如按键消息,键盘消息,绘图消息等,上传上来以后native层肯定就会调用相应的函数最终调用到java层。这只是一个粗略的分析。
      

  2.   

    楼主学习过《计算机原理》不?这里面有前半部分所需知识,大致是:
    1、鼠标点击后,其作为外设会触发IRQ中断;
    2、计算机设备会根据IRQ中断来调用操作系统预先注册好的处理代码;楼主学习过《操作系统原理》不?这里面有中半部分所需知识,大致是:
    3、操作系统根据鼠标的位置和屏幕上各窗体应用的层叠关系,判定鼠标所在位置是哪个窗体关系范畴;
    4、生成事件通知该窗体;最后是JavaGUI系统的知识,这个一般学校不教,大致是:
    5、GUI主线程得到该事件后,会将其封装为JavaGUI事件;
    6、然后进一步根据位置来判定究竟是哪个控件应该处理该事件,并将事件发送给该控件。
      

  3.   

     
    不要原理,原理我都知道哈。时间肯定是要和操作系统交互的。我觉问点具体的,操作系统与JVM的交互过程,最好不仅仅是原理。希望知道具体实现过程