Java Swing 树状组件JTree的使用方法【图】
树中特定的节点可以由 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的使用方法【图】相关推荐
- mysql如何实现树状结构_实现树状结构的两种方法
实现树状结构的两种方法 实现树状结构的两种方法 1.递归法 递归是指在函数中显式的调用它自身. 利用递归法实现树状结构的特点是写入数据速度较快,显示速度较慢(在树的分支/层次较多的情况下尤其明显).适 ...
- java swing 树_Java Swing JTree 树形
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.概念 官方JavaDocsApi:javax.swing.JTree JTree 树.将分层数据显示为树状轮廓的组件. 树由若干节点,通过层级关系组成 ...
- java构建树状结构工具类
树状结构工具 创建类TreeUtil 类属性 private List<T> rootList; //根节点对象存放到这里private List<T> bodyList; / ...
- Java实现树状结构解析
第一次实现了树状结构数据 记录自己的第一次 话不多说 直接上代码 数据库信息 代码实现 实体类 public class ChainTree implements Serializable {priv ...
- Java数据结构-树状数组
什么是树状数组?[面试5.0] 使用数组表示多叉树的结构,和优先队列有点类似,区别在于优先队列只表示二叉树 主要用来: 更新数组元素的数值并且求数组前K个元素的总和或平均值 时间复杂度为O(logN) ...
- JAVA构建树状结构
记一下自己在展示树状结构时候的几个写法,一个是确定有几个层级的,用于只有两三个层级的树状结构,写法简单一点.还有就是不确定有几个层级,也可能1个,也可能4个或者更多. 先说一下确定有几个层级的写法 这 ...
- java web树状导航菜单_导航条——树状导航菜单
1.概述 对于一个导航文字很多,并且可以对导航内容进行分类的网站来说,可以将页面中的导航文字以树状图的形式显示,树状图的导航菜单在实际开发应用中非常多.应用它可以方便用户查看.运行本实例,如图1所示, ...
- java swing 注册事件_比较Java Swing中三种注册事件的方法
Swing 是目前Java中不可缺少的窗口工具组,是建立图形化用户界面(GUI)程序的强大工具.Java Swing组件自动产生各种事件来响应用户行为.Java将事件封装成事件类,并且为每个事件类定义 ...
- PHP树结构的应用,实现树状结构的两种方法-PHP教程,PHP应用
代码:--------------------------– create table `tree1` ( `id` tinyint(3) unsigned not null auto_increme ...
最新文章
- Uber无人车收购MightyAI:掘金尚未暴富,卖水先获财务自由
- 小明分享:Esp32下softAP+tcp_server的简单实现
- 2.linux换源问题
- Python 面向对象 实例方法 属性 (上)
- 转载---Adaboost学习记录
- 初探 performance - 监控网页与程序性能
- DxO PhotoLab 5 for mac(raw图片处理软件)
- whoami 显示“我是谁”
- (详解)IDEA中使用git教程
- ctype函数_Ctype函数简介
- html5好看的颜色代码,css好看的颜色配色.html
- 千人千面算法java实现_推荐算法-recommend_system
- 智利车厘子的尺寸说明,给大家扫盲
- Win10安装虚拟网卡
- T00LS MSF笔记
- Flink程序 Timer实现定时操作
- 【ICPR 2021】遥感图中的密集小目标检测:Tiny Object Detection in Aerial Images
- 经济实验室帐号与国泰安数据库地址
- 世界顶尖PHP站Facebook后台技术探秘
- 小视频如何消重 视频剪切后md5值变了吗
热门文章
- Java 必须掌握的 20+ 种 Spring 常用注解
- 迈出编程第一步!必知必会的10个编程技巧及查错方法
- 2023 USNews全美计算机研究生院排名发布!MIT、CMU分别称霸总榜和AI分榜
- 定了!旗手苏炳添!却被23年前的科幻小说“神预言”?作者回应!
- 【干货】新手炼丹经验总结
- 涵盖18+ SOTA GAN实现,这个图像生成领域的PyTorch库火了
- 连续霸榜 Github!又有一个 Linux 神器出现了
- 并发编程专题——第二章(并发编程之Synchronized详解)
- Mysql高级调优篇——第五章:Sql调优在面试中深度剖析
- python中map()函数使用方法