java awt中负责消息分派的函数在哪个类中?

Robi 2002-11-29 08:19:00
系统消息是怎么被应用程序获取,又是怎么定位到对应底消息(事件)处理函数的?
...全文
26 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
junnef 2002-11-30
  • 打赏
  • 举报
回复
java的API类好多都是用c\c++写的,应该和c\c++中获得的方法一郅。
Robi 2002-11-30
  • 打赏
  • 举报
回复
还是不对,我的问题是,鼠标事件消息本来是在系统堆栈里的,他们是怎么被java运行环境所获取,然后又是怎么调用该消息对应的界面对象的监听器的?
可能涉及到底层的问题
junnef 2002-11-29
  • 打赏
  • 举报
回复
//下面加入鼠标事件
tree.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent me)
{
doMouseClicked(me);
}
});
}
//鼠标动作
void doMouseClicked(MouseEvent me)
{
TreePath tp=tree.getPathForLocation(me.getX(),me.getY());
if(tp!=null)
jtf.setText(tp.toString());
else
jtf.setText("");
}
junnef 2002-11-29
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;

/*
<applet code="JtreeEvents" width=400 height=200>
</applet>
*/

public class JTreeEvents extends JApplet
{
JTree tree;
JTextField jtf;

public void init()
{
Container contentPane=getContentPane();

contentPane.setLayout(new BorderLayout());

DefaultMutableTreeNode top=new DefaultMutableTreeNode("Options");

DefaultMutableTreeNode a=new DefaultMutableTreeNode("A");
top.add(a);
DefaultMutableTreeNode a1=new DefaultMutableTreeNode("A1");
a.add(a1);
DefaultMutableTreeNode a2=new DefaultMutableTreeNode("A2");
a.add(a2);

DefaultMutableTreeNode b=new DefaultMutableTreeNode("B");
top.add(b);
DefaultMutableTreeNode b1=new DefaultMutableTreeNode("B1");
b.add(b1);
DefaultMutableTreeNode b2=new DefaultMutableTreeNode("B2");
b.add(b2);
DefaultMutableTreeNode b3=new DefaultMutableTreeNode("B3");

DefaultMutableTreeNode b31=new DefaultMutableTreeNode("B31");
b2.add(b31);

tree=new JTree(top);

int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
JScrollPane jsp=new JScrollPane(tree,v,h);

contentPane.add(jsp,BorderLayout.CENTER);

jtf=new JTextField("",20);
contentPane.add(jtf,BorderLayout.SOUTH);
//下面加入鼠标事件
tree.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent me)
{
doMouseClicked(me);
}
});
}
//鼠标动作
void doMouseClicked(MouseEvent me)
{
TreePath tp=tree.getPathForLocation(me.getX(),me.getY());
if(tp!=null)
jtf.setText(tp.toString());
else
jtf.setText("");
}
}
Robi 2002-11-29
  • 打赏
  • 举报
回复
谁调用监听器
junnef 2002-11-29
  • 打赏
  • 举报
回复
加监听器,监听不同的时间,在java.awt.event和javax.swing.event包中。

62,614

社区成员

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

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