Chinaunix

标题: JTree没有响应事件?请看看是不是代码的问题 [打印本页]

作者: 王庚    时间: 2004-08-08 07:51
标题: JTree没有响应事件?请看看是不是代码的问题
public class Frame1 extends JFrame implements TreeSelectionListener
{
  .....
  JTree tree;
  //Construct the frame
  public Frame1()
  {
    ......
    try
    {
      jbInit();
   
     }
    ....
   }
  //Component initialization
  private void jbInit() throws Exception
  {
    ......
    DefaultMutableTreeNode root = new DefaultMutableTreeNode("同学通讯录";
    DefaultMutableTreeNode t1 = new DefaultMutableTreeNode("大学同学";
    DefaultMutableTreeNode t2=new DefaultMutableTreeNode("研究生同学";
    DefaultMutableTreeNode t1_1=new DefaultMutableTreeNode("李晓";
    DefaultMutableTreeNode t1_2=new DefaultMutableTreeNode ("王光明";
    DefaultMutableTreeNode t2_1=new DefaultMutableTreeNode ("洞明光";
    DefaultMutableTreeNode t2_2=new DefaultMutableTreeNode ("代学才";
    ......
    root.add(t1);
    root.add(t2);
    t1.add(t1_1);
    t1.add(t1_2);
    t2.add(t2_1);
    t2.add(t2_2);
    JTree tree = new JTree(root);
    tree.addTreeSelectionListener(this);
    jPanel1.add(tree);
    ......
  }
  public void valueChanged (TreeSelectionEvent e)
{
   System.out.print("洞明光";    ***************************************
   if(((JTree)e.getSource())==tree)
   {
     System.out.print("到tree了!";  ###################################
     String str=tree.getLastSelectedPathComponent().toString();
      if(str.equals("洞明光")
      {
        jTextArea1.setText("洞明光");
        System.out.print("洞明光");
      }
      else if(str.equals("代学才"))
      {
        jTextArea1.setText("代学才");
        System.out.print("代学才");
      }
      else if(str.equals("王光明"))
      {
        jTextArea1.setText("王光明");
        System.out.print("王光明");
      }
      else if(str.equals("李晓"))
      {
        jTextArea1.setText("李晓");
        System.out.print("李晓");
      }
      else
      {
          //jTextArea1.setText(str.getUserObject().toString());
      }
      this.show();
   }
  }
  //Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e)
  {
    ......
   }
}
我在程序中加了两个输出行,如上面的***行和###行位置,运行时,***行正常运行,但是
###行没运行。我想不出问题在哪?请帮忙~~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2