Java Swing中的表格(JTable)和树(JTree)组件使用实例(3)
JTree(TreeNode root, boolean asksAllowsChildren):返回 JTree,指定的 TreeNode 作为其根, 它用指定的方式显示根节点,并确定节点是否为叶节点。(true设置为可添加孩子
JTree(TreeNode root, boolean asksAllowsChildren):返回 JTree,指定的 TreeNode 作为其根,
它用指定的方式显示根节点,并确定节点是否为叶节点。(true设置为可添加孩子结点,再添加孩子结点).
3.代码演示:
示例1:
复制代码 代码如下:
public class JTreeDemo1 {
JFrame f;
Box box;
JTree jTree1,jTree2;
public JTreeDemo1()
{
f = new JFrame(" JTreeDemo1 ");
box = Box.createHorizontalBox(); //创建Box 类对象
jTree1 = new JTree();
jTree2 = new JTree();
//向此组件添加任意的键/值
jTree1.putClientProperty("JTree.lineStyle", "Angled");
//向Box 容器添加滚动面板
box.add(new JScrollPane(jTree1), BorderLayout.WEST);
box.add(new JScrollPane(jTree2), BorderLayout.EAST);
f.getContentPane().add(box, BorderLayout.CENTER);
f.setSize(300, 240);
//f.pack();
f.setLocation(300, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JTreeDemo1();
}
}
截图1:
示例2:
复制代码 代码如下:
public class JTreeDemo2 {
JFrame f;
JPanel p;
JTree jTree1,jTree2,jTree3,jTree4,jTree5,jTree6,jTree7;
public JTreeDemo2() {
f = new JFrame(" JTreeDemo2 ");
// 构造函数:JTree()
jTree1 = new JTree();
// 构造函数:JTree(Object[] value)
Object[] letters = { " a ", " b ", " c ", " d ", " e " };
jTree2 = new JTree(letters);
// 构造函数:JTree(TreeNode root)(TreeNode空)
// 用空结点创建树
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(); // 定义树结点
jTree3 = new JTree(node1); // 用此树结点做参数调用 JTree的构造函数创建含有一个根结点的树
// 构造函数:JTree(TreeNode root)(同上,只是TreeNode非空)
// 用一个根结点创建树
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(" Color ");
jTree4 = new JTree(node2); // 结点不可以颜色,默认为白面黑字
jTree4.setBackground(Color.lightGray);
// 构造函数:JTree(TreeNode root, boolean
// asksAllowsChildren)(同上,只是TreeNode又有不同)
// 使用DefaultMutableTreeNode类先用一个根结点创建树,设置为可添加孩子结点,再添加孩子结点
DefaultMutableTreeNode color = new DefaultMutableTreeNode(" Color ",
true);
DefaultMutableTreeNode gray = new DefaultMutableTreeNode(" Gray ");
gray.add(new DefaultMutableTreeNode(" Lightgray "));
gray.add(new DefaultMutableTreeNode(" Darkgray "));
color.add(gray);
color.add(new DefaultMutableTreeNode(" Red "));
color.add(new DefaultMutableTreeNode(" Green "));
jTree5 = 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);
jTree6 = new JTree(biology);
horse.isLeaf();
horse.isRoot();
// 构造函数: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 ");
root.add(child1);
child1.add(child11);
child11.add(child111);
DefaultTreeModel model = new DefaultTreeModel(root);
jTree7 = new JTree(model);
p = new JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
p.setPreferredSize(new Dimension(700, 400));
// JTree必须放在JScrollPane上
p.add(new JScrollPane(jTree1));
p.add(new JScrollPane(jTree2));
p.add(new JScrollPane(jTree3));
p.add(new JScrollPane(jTree4));
p.add(new JScrollPane(jTree5));
p.add(new JScrollPane(jTree6));
p.add(new JScrollPane(jTree7));
f.setContentPane(p);
f.pack();
f.setLocation(300, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JTreeDemo2();
}
}
截图2:
收藏文章
精彩图集
精彩文章