请教JAVA窗口程序一些问题(内部机制 高手进来 满意加分)
我想问众JAVA高手一点问题望帮忙啊!最近看了java的事件驱动基本的都了解了也会制作自己的事件类监听器接口(自定义事件)现在就是对于窗口的内部运作原理不甚了解,于是有如...
我想问众JAVA高手一点问题 望帮忙啊!
最近看了java的事件驱动 基本的都了解了 也会制作自己的事件类 监听器接口(自定义事件) 现在就是对于 窗口的内部运作原理 不甚了解,于是有如下问题:
1、窗口frame是怎么运行的,是否有像WIN32程序那样的消主息循环啊(据说没有)那么窗口是怎么一直运行,并且监听事件呢?(比如Frame a=new Frame();这就是一个最简单的窗口了 而且由于没有设置处理关闭事件 这个窗口是个“死循环”但是他确实一直在运行 用户代码中可不带循环)
2、最基本的最系统的组件事件是谁在监视并且传送
比如 我点一下窗口上的button 你虽然没有设置相关的ActionListener 但是他仍然会有按下效果,那么,是谁在判断 我的鼠标在Button的位置点了一下 并且把这个事件告诉button 从而调用button的相关GUI方法的,是窗口(frame)吗?
主要就是这两个问题 望解答 非常感谢
另外,关于“用户点击窗口上的按钮”这一过程模型 我对于win32程序 作出推测:
首先 用户点了一下鼠标,这个被系统的IO相关的进程(线程)捕获,然后把这个事件的消息(包含鼠标状态和位置)发送到当前活动窗口,然后窗口分析这个时间是否是有效的本窗口包含的组件上发生的事件,如果是就发送消息到对应组件,如这个按钮,然后就调用了按钮的相关GUI方法,如显示按下状态,然后组件又生成了一个WM_COMMAND消息返回给窗口,用于用户处理
这是我分析的整个过程,如果您同样精通win32程序 请您指出其中的不对,而应该是什么样的。然后请java高手 帮我对java的 关于“用户点击窗口上的按钮”这一过程模型,分析一下整个流程 万分感谢啊
如果让我茅塞顿开 追加20分
呵呵 终于有人捧场了
2楼哥们 对于整个JAVA observer事件驱动机制 我已经明白 而且会用 只是想知道窗口程序的内部运行细节
3楼哥们:源码实在看不懂了 frame jframe 的构造函数,都终止到sun.awt.SunToolKit类中的CheckAndSetPolicy()方法上
而且在任何中文页面上查不到sun.awt的任何说明而且没有源码(sun不推荐使用) 最终再外国的一个网站找到,但是看不懂,java窗口好像是运用到本地窗口资源的(有很多native方法 )所以很难看懂 展开
最近看了java的事件驱动 基本的都了解了 也会制作自己的事件类 监听器接口(自定义事件) 现在就是对于 窗口的内部运作原理 不甚了解,于是有如下问题:
1、窗口frame是怎么运行的,是否有像WIN32程序那样的消主息循环啊(据说没有)那么窗口是怎么一直运行,并且监听事件呢?(比如Frame a=new Frame();这就是一个最简单的窗口了 而且由于没有设置处理关闭事件 这个窗口是个“死循环”但是他确实一直在运行 用户代码中可不带循环)
2、最基本的最系统的组件事件是谁在监视并且传送
比如 我点一下窗口上的button 你虽然没有设置相关的ActionListener 但是他仍然会有按下效果,那么,是谁在判断 我的鼠标在Button的位置点了一下 并且把这个事件告诉button 从而调用button的相关GUI方法的,是窗口(frame)吗?
主要就是这两个问题 望解答 非常感谢
另外,关于“用户点击窗口上的按钮”这一过程模型 我对于win32程序 作出推测:
首先 用户点了一下鼠标,这个被系统的IO相关的进程(线程)捕获,然后把这个事件的消息(包含鼠标状态和位置)发送到当前活动窗口,然后窗口分析这个时间是否是有效的本窗口包含的组件上发生的事件,如果是就发送消息到对应组件,如这个按钮,然后就调用了按钮的相关GUI方法,如显示按下状态,然后组件又生成了一个WM_COMMAND消息返回给窗口,用于用户处理
这是我分析的整个过程,如果您同样精通win32程序 请您指出其中的不对,而应该是什么样的。然后请java高手 帮我对java的 关于“用户点击窗口上的按钮”这一过程模型,分析一下整个流程 万分感谢啊
如果让我茅塞顿开 追加20分
呵呵 终于有人捧场了
2楼哥们 对于整个JAVA observer事件驱动机制 我已经明白 而且会用 只是想知道窗口程序的内部运行细节
3楼哥们:源码实在看不懂了 frame jframe 的构造函数,都终止到sun.awt.SunToolKit类中的CheckAndSetPolicy()方法上
而且在任何中文页面上查不到sun.awt的任何说明而且没有源码(sun不推荐使用) 最终再外国的一个网站找到,但是看不懂,java窗口好像是运用到本地窗口资源的(有很多native方法 )所以很难看懂 展开
4个回答
展开全部
个人意见:1.现在java一 般是用swing很少用AWT实际上new Frame();它壳已经出来了,现在你只是往上加东西而已比如关闭就.setDefaultCloseOperation(Swing的。awt不清楚)或重写WindowListener的windowClosing方法。
2.产生事件的组件和对事件作出的具体处理(利用一种称为监听器[listener]的实体来对事件进行具体的处理)分开。你先要在给按钮写个监听方法(做你想做的事)然后把这方法(监听)加到按钮上。当你点按钮时就调用监听方法去做你要它做的事。
java与win32程序是不同的你要换个思路。java是要你去用,要你去实现
2.产生事件的组件和对事件作出的具体处理(利用一种称为监听器[listener]的实体来对事件进行具体的处理)分开。你先要在给按钮写个监听方法(做你想做的事)然后把这方法(监听)加到按钮上。当你点按钮时就调用监听方法去做你要它做的事。
java与win32程序是不同的你要换个思路。java是要你去用,要你去实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题 我建议你去看看源代码吧 Frame的源码 一看就说明白了 Frame涉及到的类都看看
如果有不懂的 我们可以讨论 哈哈 现在桌面应用程序都少了 基本上都是web
鄙人就是从事j2ee工作的 以前也开发过web 如果lz真的想知道问题的答案 就看看源码 不懂得我们可以讨论
哈哈 就这么多了 我的qq 379451354
如果有不懂的 我们可以讨论 哈哈 现在桌面应用程序都少了 基本上都是web
鄙人就是从事j2ee工作的 以前也开发过web 如果lz真的想知道问题的答案 就看看源码 不懂得我们可以讨论
哈哈 就这么多了 我的qq 379451354
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mark
我也只知道一点,看后人怎么回答,关注中..
我也只知道一点,看后人怎么回答,关注中..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询