JTree

JTreeDemo.java
001 package cn.rolia.learning.swing;
002 import java.awt.Dimension;
003 import java.awt.Color;
004 import javax.swing.JFrame;
005 import javax.swing.JPanel;
006 import javax.swing.JScrollPane;
007 import javax.swing.JTree;
008 import javax.swing.BoxLayout;
009 //import javax.swing.tree.TreePath;
010 import javax.swing.tree.DefaultMutableTreeNode;
011 import javax.swing.tree.DefaultTreeModel;
012 /*
013 JTree的构造函数:
014 JTree()
015 JTree(Hashtable value)
016 JTree(Object[] value)//只有这个构造函数可以创建多个根结点
017 JTree(TreeModel newModel)
018 JTree(TreeNode root)
019 JTree(TreeNode root, boolean asksAllowsChildren)
020 JTree(Vector value)
021 
022 */
023 public class JTreeDemo
024 {
025  public static void main (String[] args)
026  {
027 
028 
029   //构造函数:JTree()
030   JTree example1 = new JTree();
031 
032  
033 
034   
035   //构造函数:JTree(Object[] value)
036   Object[] letters= {"a""b""c""d""e"};
037   JTree example2 = new JTree (letters);
038 
039  
040 
041 
042   //构造函数:JTree(TreeNode root)(TreeNode空)
043   //用空结点创建树
044   DefaultMutableTreeNode node1 = new DefaultMutableTreeNode();//定义树结点
045   JTree example3 = new JTree (node1);//用此树结点做参数调用 JTree的构造函数创建含有一个根结点的树
046 
047  
048 
049 
050   //构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)
051   //用一个根结点创建树
052   DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Color");
053   JTree example4 = new JTree (node2);//结点不可以颜色,默认为白面黑字
054   example4.setBackground (Color.lightGray);
055 
056  
057 
058 
059   //构造函数:JTree(TreeNode root, boolean asksAllowsChildren)(同上,只是TreeNode又有不同)
060   //使用DefaultMutableTreeNode类先用一个根结点创建树,设置为可添加孩子结点,再添加孩子结点
061   DefaultMutableTreeNode color = new DefaultMutableTreeNode("Color"true);
062   DefaultMutableTreeNode gray = new DefaultMutableTreeNode ("Gray");
063   color.add (gray);
064   color.add (new DefaultMutableTreeNode ("Red"));
065   gray.add (new DefaultMutableTreeNode ("Lightgray"));
066   gray.add (new DefaultMutableTreeNode ("Darkgray"));
067   color.add (new DefaultMutableTreeNode ("Green"));
068   JTree example5 = new JTree (color);
069   
070   
071   
072   
073   //构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)
074   //通过逐个添加结点创建树
075   DefaultMutableTreeNode biology = new DefaultMutableTreeNode ("Biology");
076   DefaultMutableTreeNode animal = new DefaultMutableTreeNode ("Animal");
077   DefaultMutableTreeNode mammal = new DefaultMutableTreeNode ("Mammal");
078   DefaultMutableTreeNode horse = new DefaultMutableTreeNode ("Horse");
079   mammal.add (horse);
080   animal.add (mammal);
081   biology.add (animal);
082   JTree example6 = new JTree (biology);
083   horse.isLeaf();
084   horse.isRoot();
085   
086   
087 
088 
089   //构造函数:JTree(TreeModel newModel)
090   //用DefaultMutableTreeNodel类定义一个结点再用这个结点做参数定义一个用DefaultTreeMode
091   //创建一个树的模型,再用JTree的构造函数创建一个树
092   
093   DefaultMutableTreeNode root = new DefaultMutableTreeNode ("Root1");
094   DefaultMutableTreeNode child1 = new DefaultMutableTreeNode ("Child1");
095   DefaultMutableTreeNode child11 = new DefaultMutableTreeNode ("Child11");
096   DefaultMutableTreeNode child111 = new DefaultMutableTreeNode ("Child111");
097   root.add (child1); child1.add (child11); child11.add (child111);
098   
099   
100   
101   DefaultTreeModel model = new DefaultTreeModel (root);
102   
103   JTree example7 = new JTree (model);
104 
105  
106 
107   JPanel panel = new JPanel();
108   panel.setLayout (new BoxLayout (panel, BoxLayout.X_AXIS));
109   panel.setPreferredSize (new Dimension (700400));
110   panel.add (new JScrollPane (example1));//JTree必须放在JScrollPane上
111   panel.add (new JScrollPane (example2));
112   panel.add (new JScrollPane (example3));
113   panel.add (new JScrollPane (example4));
114   panel.add (new JScrollPane (example5));
115   panel.add (new JScrollPane (example6));
116   panel.add (new JScrollPane (example7));
117   
118 
119  
120 
121   JFrame frame = new JFrame ("JTreeDemo");
122   frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
123   frame.setContentPane (panel);
124   frame.pack();
125   frame.setVisible(true);
126  }
127 }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值