在用JTre生成的树形结构中单击树中叶子节点如何响应事件?我的程序如下:
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);
}
public void valueChanged(TreeSelectionEvent e)
{
if(e.getSource()==tree)//这个实践源似乎没法获得
{ String str=null;
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[])
{
//win.pack();
new MTree("- 。-");
}
JAVA我是自学的,不太会。请多多指教。我都快急疯了。鼠标电击树的子节点,System.out.println("..")语句没有输出结果。还有就是如何在这个窗口的右边添加相关的界面(点击左边的子节点,又边会切换到不同的界面),还请版主和高手们给个思路。
先表示感谢了!!
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);
}
public void valueChanged(TreeSelectionEvent e)
{
if(e.getSource()==tree)//这个实践源似乎没法获得
{ String str=null;
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[])
{
//win.pack();
new MTree("- 。-");
}
JAVA我是自学的,不太会。请多多指教。我都快急疯了。鼠标电击树的子节点,System.out.println("..")语句没有输出结果。还有就是如何在这个窗口的右边添加相关的界面(点击左边的子节点,又边会切换到不同的界面),还请版主和高手们给个思路。
先表示感谢了!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货