Java Swing 如何使用JTree(3)

转载 2017年01月02日 21:05:32
JTree组件被用来以树的形式显示数据,一层套一层,看起来清晰明了,使用户很方便地就了解到各个节点之间的层次关系,可以很容易地找到相关的数据。

  例如 Windows 系统的文件管理器,它就是一个典型的树层次结构。


  JTree的构造函数

  ·JTree() 建立一棵默认的树。

  ·JTree(Hashtable data) 利用Hashtable建立树。

  ·JTree(Object[] data) 利用数组建立树。

  ·JTree(TreeModel model) 利用TreeModel建立树。

  ·JTree(TreeNode root) 建立以root为根的树。

  ·JTree(TreeNode root,Boolean children) 建立以 root 为根的树,并设定是否允许有子节点。

  ·JTree(Vector value) 利用Vector建立树。


  使用一个JTree可以简单地像下面这样表示:

import javax.swing.JFrame;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
  
public class TreeDemo {
    public static void main(String[] args) {
  
        // 创建没有父节点和子节点、但允许有子节点的树节点,并使用指定的用户对象对它进行初始化。
        // public DefaultMutableTreeNode(Object userObject)
        DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("软件部");
        node1.add(new DefaultMutableTreeNode(new User("小花")));
        node1.add(new DefaultMutableTreeNode(new User("小虎")));
        node1.add(new DefaultMutableTreeNode(new User("小龙")));
  
        DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("销售部");
        node2.add(new DefaultMutableTreeNode(new User("小叶")));
        node2.add(new DefaultMutableTreeNode(new User("小雯")));
        node2.add(new DefaultMutableTreeNode(new User("小夏")));
  
        DefaultMutableTreeNode top = new DefaultMutableTreeNode("职员管理");
  
        top.add(new DefaultMutableTreeNode(new User("总经理")));
        top.add(node1);
        top.add(node2);
        final JTree tree = new JTree(top);
        JFrame f = new JFrame("JTreeDemo");
        f.add(tree);
        f.setSize(300300);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 添加选择事件
        tree.addTreeSelectionListener(new TreeSelectionListener() {
  
            @Override
            public void valueChanged(TreeSelectionEvent e) {
                DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
                        .getLastSelectedPathComponent();
  
                if (node == null)
                    return;
  
                Object object = node.getUserObject();
                if (node.isLeaf()) {
                    User user = (User) object;
                    System.out.println("你选择了:" + user.toString());
                }
  
            }
        });
    }
}
  
class User {
    private String name;
  
    public User(String n) {
        name = n;
    }
  
    // 重点在toString,节点的显示文本就是toString
    public String toString() {
        return name;
    }
}

 

swing组件JTabel和JTree使用总结

一:表格(JTabel) 构造方法: * JTabel():使用系统默认的模型创建一个JTable实例。 * JTabel(int numRows, int numColumns):创建一个使用...
  • Joy0125
  • Joy0125
  • 2015年06月10日 16:33
  • 874

swing jtree实现叶子节点闪动效果类似于QQ好友列表

package test; import java.awt.Component; import java.awt.Dimension; import java.awt.event.Actio...
  • ycb1689
  • ycb1689
  • 2013年11月21日 16:57
  • 2771

JTree---刷新树,保存树的刷新前的展开状态

package test; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.ev...
  • CSDN184580097
  • CSDN184580097
  • 2014年04月22日 21:04
  • 1830

JTree实现文件树——使用系统图标

这篇文章介绍的内容其实跟TWaver的组件没有任何关系,但是个人觉得还是挺有意思的,所以发出来共享一下。这个文件树(如下图)完全基于swing的JTree组件实现,先看一下最后我们完成的效果: ...
  • u012436908
  • u012436908
  • 2014年11月24日 10:33
  • 2385

JTree实现的系统文件目录树

看到很多人问关于用JTree实现资源管理器的方法,在这里我提供一个例子共大家参考,这个例子虽然也是转自其他书,但是JTree的用法,我掌握的差不多了,如果哪位朋友,对此例子有问题,我愿意与他交流。我的...
  • jackkui
  • jackkui
  • 2004年08月17日 20:20
  • 4111

Java Jtree渲染叶子实现可以添加swing组件

import java.awt.Color; import java.awt.Component; import java.awt.Dimension;import javax.swing.JPa...
  • cuiyaoqiang
  • cuiyaoqiang
  • 2015年06月04日 14:11
  • 956

JTree 节点拖动

package com.moya.test; /* Java Swing, 2nd Edition By Marc Loy, Robert Eckstein, Dave Wood, James ...
  • giianhui
  • giianhui
  • 2013年04月14日 21:10
  • 940

JAVA SWING JTree全面了解

基础了解 使用JTree組件:     java.lang.Object       --java.awt.Component --java.awt.Container         --...
  • mike_caoyong
  • mike_caoyong
  • 2012年12月29日 21:22
  • 2823

JTree 方法设置树节点的展开图标

JTree 方法设置树节点的展开图标
  • u011630097
  • u011630097
  • 2016年04月04日 10:40
  • 593

JTree右键菜单实现编辑、添加、删除节点

  JTree右键菜单实现编辑、添加、删除节点 import java.awt.event.ActionEvent;import java.awt.event.ActionListener;impor...
  • gl7788521
  • gl7788521
  • 2010年12月15日 20:42
  • 2109
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java Swing 如何使用JTree(3)
举报原因:
原因补充:

(最多只允许输入30个字)