首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关与JTree的个有关问题!请高手帮忙!先多谢了哈

2012-04-03 
关与JTree的个问题!请高手帮忙!先谢谢了哈。为什么用JTree生成的数中单击子节点不会响应事件?我的程序如下:

关与JTree的个问题!请高手帮忙!先谢谢了哈。
为什么用JTree生成的数中单击子节点不会响应事件?
我的程序如下:
import   java.awt.*;
import   java.awt.event.*;
import   javax.swing.*;
import   javax.swing.tree.*;
import   javax.swing.event.*;

  class   Mtree   extends   JFrame   implements   TreeSelectionListener
{         JTree   tree=null;
  JPanel   p=null;
  JButton   button;
Mtree(String   s)
{   super(s);
Container   con=this.getContentPane();
DefaultMutableTreeNode   root=new   DefaultMutableTreeNode( "主业务功能 ");
DefaultMutableTreeNode   t1=new   DefaultMutableTreeNode( "账户管理 ");
DefaultMutableTreeNode   t2=new   DefaultMutableTreeNode( "事物查询 ");
DefaultMutableTreeNode   t3=new   DefaultMutableTreeNode( "用户存款 ");
DefaultMutableTreeNode   t4=new   DefaultMutableTreeNode( "用户取款 ");
DefaultMutableTreeNode   t5=new   DefaultMutableTreeNode( "数据维护 ");
DefaultMutableTreeNode   t6=new   DefaultMutableTreeNode( "系统表查看 ");
DefaultMutableTreeNode   t7=new   DefaultMutableTreeNode( "系统账户管理 ");
DefaultMutableTreeNode   t8=new   DefaultMutableTreeNode( "退出系统 ");

DefaultMutableTreeNode   t1_1=new   DefaultMutableTreeNode( "新用户开户 ");
DefaultMutableTreeNode   t1_2=new   DefaultMutableTreeNode( "用户资料明细 ");
DefaultMutableTreeNode   t1_3=new   DefaultMutableTreeNode( "账户密码修改 ");
DefaultMutableTreeNode   t2_1=new   DefaultMutableTreeNode( "账户金额查询 ");
DefaultMutableTreeNode   t2_2=new   DefaultMutableTreeNode( "交易记录查询 ");
DefaultMutableTreeNode   t2_3=new   DefaultMutableTreeNode( "账户信息查询 ");
DefaultMutableTreeNode   t5_1=new   DefaultMutableTreeNode( "数据导出 ");
DefaultMutableTreeNode   t5_2=new   DefaultMutableTreeNode( "数据导入 ");
DefaultMutableTreeNode   t7_1=new   DefaultMutableTreeNode( "添加管理员账户 ");
DefaultMutableTreeNode   t7_2=new   DefaultMutableTreeNode( "管理员密码修改 ");
root.add(t1);root.add(t2);root.add(t3);root.add(t4);
root.add(t5);root.add(t6);root.add(t7);root.add(t8);
t1.add(t1_1);t1.add(t1_2);t1.add(t1_3);
t2.add(t2_1);t2.add(t2_2);t2.add(t2_3);
t5.add(t5_1);t5.add(t5_2);t7.add(t7_1);t7.add(t7_2);
JTree   tree=   new   JTree(root);
JScrollPane   panel   =   new   JScrollPane(p=new   JPanel());
JSplitPane   splitpane=new   JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,tree,panel);

                con.add(splitpane);
                tree.addTreeSelectionListener(this);
                System.out.println(tree);
                this.validate();    

addWindowListener(new   WindowAdapter(){    
public   void   windowClosing(WindowEvent   e){
System.exit(0);
}
});
this.setBounds(80,   60,   800,   600);    
this.setVisible(true);  
System.out.println( "333 ");
}


public   void   valueChanged(TreeSelectionEvent   e)
{//   TODO   自动生成方法存根
System.out.println( "444 ");
if(e.getSource()==tree)//这里似乎无法获得事件源


{String   str=null;
System.out.println( "555 ");
System.out.println(str);
DefaultMutableTreeNode   node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(node.isLeaf())
{
str=node.toString();
System.out.println(str);
if(str.equals( "新用户开户 "))
{System.out.println( "新用户开户 ");}
else   if(str.equals( "用户资料明细 "))
{System.out.println( "用户资料明细 ");}
else   if(str.equals( "账户金额查询 "))
{System.out.println( "账户金额查询 ");}
else   if(str.equals( "交易记录查询 "))
{System.out.println( "交易记录查询 ");}
else   if(str.equals( "账户信息查询 "))
{System.out.println( "账户信息查询 ");}
else   if(str.equals( "数据导出 "))
{System.out.println( "数据导出 ");}
else   if(str.equals( "数据导入 "))
{System.out.println( "数据导入 ");}
else   if(str.equals( "用户存款 "))
{System.out.println( "用户存款 ");}
else   if(str.equals( "退出系统 "))
{System.out.println( "退出系统 ");}
else   if(str.equals( "系统表查看 "))
{System.out.println( "系统表查看 ");}
else   if(str.equals( "用户取款 "))
{System.out.println( "用户取款 ");}
}
else
{System.out.println( "ERROR ");}

}
else{System.out.println( "oooooo ");}
}
}
public   class   主窗体
{
public   static   void   main(String   args[])
{
//MTree   win=new   MTree( "-   。- ");
//win.pack();
new   MTree( "-   。- ");
}
}
我没学过JAVA,但老师要求用JAVA来做。我也只好边做边学了。

为什么我的这个程序生成的框架中   ,单击左边的树形菜单中的子节点无法
看到System.out.println( "     ")语句输出的内容?请高手和版主指点,本人
先谢了哈。

还有就是如何在右边升成的P(Panel)中添加不同的界面?在单击左边不同的子节点时,右边的界面可以切换   。请大狭给点思路。


[解决办法]
JTree tree= new JTree(root);
换成
tree= new JTree(root);
[解决办法]
是不是选择未被选中的节点可以输出,
换成鼠标事件试一下吧
关于panel 可以把不同的界面都做成panel
然后在右边的panel中 remove(old) 然后再add(new) 进去
[解决办法]
p.add(p2);
p.add(p3);
p.add(p4);
换成
my.addLayoutComponent(p2, "p2 ");
my.addLayoutComponent(p3, "p3 ");
my.addLayoutComponent(p4, "p4 ");

热点排行