加监听器,监听不同的时间,在java.awt.event和javax.swing.event包中。

解决方案 »

  1.   

    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("");
    }
    }
      

  2.   

    //下面加入鼠标事件
    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("");
    }
      

  3.   

    还是不对,我的问题是,鼠标事件消息本来是在系统堆栈里的,他们是怎么被java运行环境所获取,然后又是怎么调用该消息对应的界面对象的监听器的?
    可能涉及到底层的问题
      

  4.   

    java的API类好多都是用c\c++写的,应该和c\c++中获得的方法一郅。