java的gui程序是怎么得到事件发生的消息的呢?

dev2003 2004-01-07 06:11:33
在开发windows应用程序时,应用程序是从消息队列中获取消息,分发并响应。在java下开发的程序是怎么得到事件发生的消息的呢?事件怎么产生,分发?jvm处于怎样的位置?谢谢
...全文
85 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dev2003 2004-01-08
  • 打赏
  • 举报
回复
谢谢大家。
在button.java里有这样回调接口方法的一段代码:
protected void processActionEvent(ActionEvent e) {
if (actionListener != null) {
actionListener.actionPerformed(e);
}
}
我的问题主要是:例如点一下按钮,是回调了接口方法actionPerformed,但ActionEvent对象是那里生成的?这个processActionEvent又是谁来调用?
tianye508 2004-01-07
  • 打赏
  • 举报
回复
看看回调知识应当有所收获!
和window的消息机制差不多。下面介绍四种消息实现的方法:
最常用的就是利用implements interface 再来实现接口中的自己需要定义的时间方法。
但是这样有一个缺点就是要实现所有的接口方法,代码就显得有些多余;还有一种写法就是利用内部类的特点,这样可以使程序代码简洁;还有一种就是单独写一个类实现相应的事件接口方法,同样也只是前几种的变迁。最后一种是更简洁和明了的,那就是使用试配器(Adapter)
这样就只要实现自己想要的事件方法,而不要全部象实现接口方法那样。
wenwenwen112 2004-01-07
  • 打赏
  • 举报
回复
java与windows无关,怎么能相提并论,如果是为windows而学gui,还是VC++或C#更适合一些。
dev2003 2004-01-07
  • 打赏
  • 举报
回复
如果操作系统不是windows呢?
在一些类中有这样的方法 如protected void processEvent(AWTEvent e)实现事件的分发,回调用了listener中的响应方法,但是processEvent的方法谁来调用呢?
sammy791010 2004-01-07
  • 打赏
  • 举报
回复
listener
d992901 2004-01-07
  • 打赏
  • 举报
回复
我感觉java虚拟机应该算是windows中的一个程序,虚拟机从消息队列里获得消息,然后再向下分发把
自己的理解,不知道对不对
lionqun 2004-01-07
  • 打赏
  • 举报
回复
一般都是一个组件添加一个listener(listener一般都是接口)。
然后在接口的实现中添加响应函数(比如MousePressed),一般一个事件函数都有一个参数Event,然后用这个参数得到响应的组件(比如e.getSource)

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧