标签:cte 接口 [] cti log list eve pen change
树组件首先要new一个JTree,再加结点,然后添加到 JScrollPane
JTree tree1=new JTree(); //.......添加节点 add(new ScrollPane(tree1)
添加节点
DefaultMutableTreeNode root=new DefaultMutableTreeNode("dongxi")//后面的是备注 DefaultMutableTreeNode root=new DefaultMutableTreeNode(new Good("aa",11));//还可以作为叶子new 对象
添加监视器(由树来添加
addTreeSelectionListener(TreeSelectionListener listener)
TreeSelectionListener接口的方法
public void valueChanged(TreeSelectionEvent e)
在上面的接口方法中,返回树的结点,再返回结点中的对象
DefaultMutableTreeNode node1=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();//只有树Tree才能用的方法 if(node.isLeaf())//判断是否叶子节点 Obeject a=(Obeject)node.getUserObject()//返回叶子里面的对象
完整的测试代码
public class test{ public static void main(String args[]){ MyWin window1=new MyWin(); window1.setBounds(12,12,400,300); } } class MyWin extends JFrame implements TreeSelectionListener{ JTextField text1; JButton button1,button2; JTextArea textArea1,textArea2; JLabel label1; JTree tree1; MyWin(){ init(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } void init(){ DefaultMutableTreeNode root=new DefaultMutableTreeNode("Goods"); DefaultMutableTreeNode nodeTV=new DefaultMutableTreeNode("TV"); DefaultMutableTreeNode nodePhone=new DefaultMutableTreeNode("phone"); DefaultMutableTreeNode tv1=new DefaultMutableTreeNode(new Goods("huangTV",11)); DefaultMutableTreeNode tv2=new DefaultMutableTreeNode(new Goods("yuTV",21)); DefaultMutableTreeNode phone1=new DefaultMutableTreeNode(new Goods("ga",31)); DefaultMutableTreeNode phone2=new DefaultMutableTreeNode(new Goods("bing",11)); root.add(nodeTV); root.add(nodePhone); nodeTV.add(tv1); nodeTV.add(tv2); nodePhone.add(phone1); nodePhone.add(phone2); tree1=new JTree(root); tree1.addTreeSelectionListener(this); setLayout(new GridLayout(1,2)); add(new JScrollPane(tree1)); textArea2=new JTextArea(15,15); add(new JScrollPane(textArea2)); } public void valueChanged(TreeSelectionEvent e){ DefaultMutableTreeNode a=(DefaultMutableTreeNode)tree1.getLastSelectedPathComponent(); if(a.isLeaf()){//是叶子节点? Goods b=(Goods)a.getUserObject(); textArea2.append(b.name+": "+b.price+"\n"); } else textArea2.setText(null); } } class Goods{ String name; double price; Goods(String name,double price){ this.name=name; this.price=price; } }
标签:cte 接口 [] cti log list eve pen change
原文地址:http://www.cnblogs.com/vhyc/p/6002294.html