树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识。展开 节点是一个非叶节点(由返回 false 的 TreeModel.isLeaf(node) 标识),当展开 其所有祖先时,该节点将显示其子节点。折叠 节点是隐藏它们的节点。隐藏 节点是位于折叠祖先下面的节点。所有可查看 节点的父节点都是可以展开的,但是可以显示它们,也可以不显示它们。显示 节点是可查看的并且位于可以看到它的显示区域。

构造方法摘要
JTree()
          返回带有示例模型的 JTree
JTree(Hashtable<?,?> value)
          返回从 Hashtable 创建的 JTree,它不显示根。
JTree(Object[] value)
          返回 JTree,指定数组的每个元素作为不被显示的新根节点的子节点。
JTree(TreeModel newModel)
          返回 JTree 的一个实例,它显示根节点 - 使用指定的数据模型创建树。
JTree(TreeNode root)
          返回 JTree,指定的 TreeNode 作为其根,它显示根节点。
JTree(TreeNode root, boolean asksAllowsChildren)
          返回 JTree,指定的 TreeNode 作为其根,它用指定的方式显示根节点,并确定节点是否为叶节点。
JTree(Vector<?> value)
          返回 JTree,指定 Vector 的每个元素作为不被显示的新根节点的子节点。
public JTree(TreeNode root)
返回 JTree,指定的 TreeNode 作为其根,它显示根节点。默认情况下,树可以将叶节点定义为不带子节点的任何节点。 
下面用构造方法public JTree(TreeNode root)创建实例

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(300, 300);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 添加选择事件tree.addTreeSelectionListener(new TreeSelectionListener() {@Overridepublic 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,节点的显示文本就是toStringpublic String toString() {return name;}
}

  

Java Swing 树状组件JTree的使用方法【图】相关推荐

  1. mysql如何实现树状结构_实现树状结构的两种方法

    实现树状结构的两种方法 实现树状结构的两种方法 1.递归法 递归是指在函数中显式的调用它自身. 利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显).适 ...

  2. java swing 树_Java Swing JTree 树形

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.概念 官方JavaDocsApi:javax.swing.JTree JTree 树.将分层数据显示为树状轮廓的组件. 树由若干节点,通过层级关系组成 ...

  3. java构建树状结构工具类

    树状结构工具 创建类TreeUtil 类属性 private List<T> rootList; //根节点对象存放到这里private List<T> bodyList; / ...

  4. Java实现树状结构解析

    第一次实现了树状结构数据 记录自己的第一次 话不多说 直接上代码 数据库信息 代码实现 实体类 public class ChainTree implements Serializable {priv ...

  5. Java数据结构-树状数组

    什么是树状数组?[面试5.0] 使用数组表示多叉树的结构,和优先队列有点类似,区别在于优先队列只表示二叉树 主要用来: 更新数组元素的数值并且求数组前K个元素的总和或平均值 时间复杂度为O(logN) ...

  6. JAVA构建树状结构

    记一下自己在展示树状结构时候的几个写法,一个是确定有几个层级的,用于只有两三个层级的树状结构,写法简单一点.还有就是不确定有几个层级,也可能1个,也可能4个或者更多. 先说一下确定有几个层级的写法 这 ...

  7. java web树状导航菜单_导航条——树状导航菜单

    1.概述 对于一个导航文字很多,并且可以对导航内容进行分类的网站来说,可以将页面中的导航文字以树状图的形式显示,树状图的导航菜单在实际开发应用中非常多.应用它可以方便用户查看.运行本实例,如图1所示, ...

  8. java swing 注册事件_比较Java Swing中三种注册事件的方法

    Swing 是目前Java中不可缺少的窗口工具组,是建立图形化用户界面(GUI)程序的强大工具.Java Swing组件自动产生各种事件来响应用户行为.Java将事件封装成事件类,并且为每个事件类定义 ...

  9. PHP树结构的应用,实现树状结构的两种方法-PHP教程,PHP应用

    代码:--------------------------– create table `tree1` ( `id` tinyint(3) unsigned not null auto_increme ...

最新文章

  1. Uber无人车收购MightyAI:掘金尚未暴富,卖水先获财务自由
  2. 小明分享:Esp32下softAP+tcp_server的简单实现
  3. 2.linux换源问题
  4. Python 面向对象 实例方法 属性 (上)
  5. 转载---Adaboost学习记录
  6. 初探 performance - 监控网页与程序性能
  7. DxO PhotoLab 5 for mac(raw图片处理软件)
  8. whoami 显示“我是谁”
  9. (详解)IDEA中使用git教程
  10. ctype函数_Ctype函数简介
  11. html5好看的颜色代码,css好看的颜色配色.html
  12. 千人千面算法java实现_推荐算法-recommend_system
  13. 智利车厘子的尺寸说明,给大家扫盲
  14. Win10安装虚拟网卡
  15. T00LS MSF笔记
  16. Flink程序 Timer实现定时操作
  17. 【ICPR 2021】遥感图中的密集小目标检测:Tiny Object Detection in Aerial Images
  18. 经济实验室帐号与国泰安数据库地址
  19. 世界顶尖PHP站Facebook后台技术探秘
  20. 小视频如何消重 视频剪切后md5值变了吗

热门文章

  1. Java 必须掌握的 20+ 种 Spring 常用注解
  2. 迈出编程第一步!必知必会的10个编程技巧及查错方法
  3. 2023 USNews全美计算机研究生院排名发布!MIT、CMU分别称霸总榜和AI分榜
  4. 定了!旗手苏炳添!却被23年前的科幻小说“神预言”?作者回应!
  5. 【干货】新手炼丹经验总结
  6. 涵盖18+ SOTA GAN实现,这个图像生成领域的PyTorch库火了
  7. 连续霸榜 Github!又有一个 Linux 神器出现了
  8. 并发编程专题——第二章(并发编程之Synchronized详解)
  9. Mysql高级调优篇——第五章:Sql调优在面试中深度剖析
  10. python中map()函数使用方法