java jtree_详解Swing中JTree组件的功能

import java.awt.Dimension;

import java.awt.Color;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTree;

import javax.swing.BoxLayout;

import javax.swing.tree.TreePath;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.tree.DefaultTreeModel;

public class JTreeDemo

{

public static void main (String[] args)

{

//构造函数:JTree()

JTree example1 = new JTree();

//构造函数:JTree(Object[] value)

Object[] letters= {"a", "b", "c", "d", "e"};

JTree example2 = new JTree (letters);

//构造函数:JTree(TreeNode root)(TreeNode空)

//用空结点创建树

DefaultMutableTreeNode node1 = new DefaultMutableTreeNode();

//定义树结点

JTree example3 = new JTree (node1);

//用此树结点做参数调用 JTree的构造函数创建含有一个根结点的树

//构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)

//用一个根结点创建树

DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("Color");

JTree example4 = new JTree (node2);//结点不可以颜色,默认为白面黑字

example4.setBackground (Color.lightGray);

//构造函数:JTree(TreeNode root, boolean asksAllowsChildren)

(同上,只是TreeNode又有不同)

//使用DefaultMutableTreeNode类先用一个根结点创建树,

设置为可添加孩子结点,再添加孩子结点

DefaultMutableTreeNode color = new DefaultMutableTreeNode

("Color", true);

DefaultMutableTreeNode gray = new DefaultMutableTreeNode

("Gray");

color.add (gray);

color.add (new DefaultMutableTreeNode ("Red"));

gray.add (new DefaultMutableTreeNode ("Lightgray"));

gray.add (new DefaultMutableTreeNode ("Darkgray"));

color.add (new DefaultMutableTreeNode ("Green"));

JTree example5 = new JTree (color);

//构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)

//通过逐个添加结点创建树

DefaultMutableTreeNode biology = new DefaultMutableTreeNode ("Biology");

DefaultMutableTreeNode animal = new DefaultMutableTreeNode ("Animal");

DefaultMutableTreeNode mammal = new DefaultMutableTreeNode ("Mammal");

DefaultMutableTreeNode horse = new DefaultMutableTreeNode ("Horse");

mammal.add (horse);

animal.add (mammal);

biology.add (animal);

JTree example6 = new JTree (biology);

horse.isLeaf();//if this node allows children.

horse.isRoot();//true if this node is the root of its tree

//构造函数:JTree(TreeModel newModel)

//用DefaultMutableTreeNodel类定义一个结点再用这个结点做参数定义一个用DefaultTreeMode

//创建一个树的模型,再用JTree的构造函数创建一个树

DefaultMutableTreeNode root = new DefaultMutableTreeNode ("Root1");

DefaultMutableTreeNode child1 = new DefaultMutableTreeNode ("Child1");

DefaultMutableTreeNode child11 = new DefaultMutableTreeNode ("Child11");

DefaultMutableTreeNode child111 = new DefaultMutableTreeNode ("Child111");

DefaultMutableTreeNode child1111 = new DefaultMutableTreeNode ("Child1111");

root.add (child1); child1.add (child11);

child11.add (child111);child111.add(child1111);

DefaultTreeModel model = new DefaultTreeModel (root);

JTree example7 = new JTree (model);

JPanel panel = new JPanel();

panel.setLayout (new BoxLayout (panel, BoxLayout.X_AXIS));

panel.setPreferredSize (new Dimension (700, 400));

panel.add (new JScrollPane (example1));//JTree必须放在JScrollPane上

panel.add (new JScrollPane (example2));

panel.add (new JScrollPane (example3));

panel.add (new JScrollPane (example4));

panel.add (new JScrollPane (example5));

panel.add (new JScrollPane (example6));

panel.add (new JScrollPane (example7));

JFrame frame = new JFrame ("JTreeDemo");

frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

frame.setContentPane (panel);

frame.pack();

frame.show();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值