java树 JTree实例(可动态添加节点)
import java.awt.*;
|
import java.awt.event.*;
|
import javax.swing.*;
|
import javax.swing.tree.*;
|
class Branch {
|
DefaultMutableTreeNode r;
|
// DefaultMutableTreeNode是树的数据结构中的通用节点,节点也可以有多个子节点。
|
public Branch(String[] data) {
|
r = new DefaultMutableTreeNode(data[ 0 ]);
|
for ( int i = 1 ; i < data.length; i++)
|
r.add( new DefaultMutableTreeNode(data[i]));
|
// 给节点r添加多个子节点
|
}
|
public DefaultMutableTreeNode node() { // 返回节点
|
return r;
|
}
|
}
|
public class Trees extends JPanel {
|
String[][] data = { { "Colors" , "Red" , "Blue" , "Green" },
|
{ "Flavors" , "Tart" , "Sweet" , "Bland" },
|
{ "Length" , "Short" , "Medium" , "Long" },
|
{ "Volume" , "High" , "Medium" , "Low" },
|
{ "Temperature" , "High" , "Medium" , "Low" },
|
{ "Intensity" , "High" , "Medium" , "Low" } };
|
static int i = 0 ; // I用于统计按钮点击的次数
|
DefaultMutableTreeNode root, child, chosen;
|
JTree tree;
|
DefaultTreeModel model;
|
public Trees() {
|
setLayout( new BorderLayout());
|
root = new DefaultMutableTreeNode( "root" );
|
// 根节点进行初始化
|
tree = new JTree(root);
|
// 树进行初始化,其数据来源是root对象
|
add( new JScrollPane(tree));
|
// 把滚动面板添加到Trees中
|
model = (DefaultTreeModel) tree.getModel();
|
// 获得数据对象DefaultTreeModel
|
JButton test = new JButton( "Press me" );
|
// 按钮test进行初始化
|
test.addActionListener( new ActionListener() {
|
// 按钮test注册监听器
|
public void actionPerformed(ActionEvent e) {
|
if (i < data.length) {
|
// 按钮test点击的次数小于data的长度
|
child = new Branch(data[i++]).node();
|
// 生成子节点
|
chosen = (DefaultMutableTreeNode)
|
// 选择child的父节点
|
tree.getLastSelectedPathComponent();
|
if (chosen == null )
|
chosen = root;
|
model.insertNodeInto(child, chosen, 0 );
|
// 把child添加到chosen
|
}
|
}
|
});
|
test.setBackground(Color.blue);
|
// 按钮test设置背景色为蓝色
|
test.setForeground(Color.white);
|
// 按钮test设置前景色为白色
|
JPanel p = new JPanel();
|
// 面板p初始化
|
p.add(test);
|
// 把按钮添加到面板p中
|
add(p, BorderLayout.SOUTH);
|
// 把面板p添加到Trees中
|
}
|
public static void main(String args[]) {
|
JFrame jf = new JFrame( "JTree demo" );
|
jf.getContentPane().add( new Trees(), BorderLayout.CENTER);
|
// 把Trees对象添加到JFrame对象的中央
|
jf.setSize( 200 , 500 );
|
jf.setVisible( true );
|
}
|
}
|
java树 JTree实例(可动态添加节点)相关推荐
- Dojo学习13 dijit.Tree 动态添加节点之一
为什么80%的码农都做不了架构师?>>> 13. dijit.Tree 动态添加节点之一 对dijit.Tree研究了很久,源代码也看了好多遍了.对于fx这个类的研究还需要更深 ...
- treeview托拽和动态添加节点以及treeview和xml的交互的实现
前两天被winform的treeview搞晕了,现在终于有时间了,把自己用到的知识简单的写出来.供和我一样初用winform 的treeview的同志批评指正. 一.treeview的 ...
- Jquery实现无限级树状结构并动态添加增删改等编辑功能
点击打开链接 源:http://www.56gee.com/Detail/2012/04/11/8AEB74E423/ <!DOCTYPE html PUBLIC "-//W3C//D ...
- zTree动态添加节点
在zTree上面动态添加节点要用到函数: addNodes(parentNode, [index], newNodes, isSilent) 关于这个函数的详细说明如下: 示例代码如下: //1.获取 ...
- Ambari动态添加节点
Ambari添加节点 背景 措施 操作步骤 ambari系列: Ambari 服务器节点动态换盘操作 Ambari的Metrics Collector启动后自动关闭的解决 Ambari动态添加节点 背 ...
- java 动态加载控件_JS动态添加节点后渲染为EasyUI控件,EasyUI动态渲染解析解决方案...
这是个小菜在实际工作中遇到的问题,相信很多EasyUI新手很可能也遇到这样的问题,因此小菜觉得有必要拿出来分享一下. 这个问题要从EasyUI的datebox组件说起,小菜用这个组件的时候,发现用$( ...
- python、java实现二叉树,细说二叉树添加节点、深度优先(先序、中序、后续)遍历 、广度优先 遍历算法...
数据结构可以说是编程的内功心法,掌握好数据结构真的非常重要.目前基本上流行的数据结构都是c和c++版本的,我最近在学习python,尝试着用python实现了二叉树的基本操作.写下一篇博文,总结一下, ...
- 安卓java代码标签_Android实现动态添加标签及其点击事件
在做Android开发的时候,会遇到动态添加标签让用户选择的功能,所以自己写了个例子,运行效果图如下. 标签可以左右滑动进行选择,点击的时候,会弹出toast提示选择或者取消选择了哪个标签.通过动态添 ...
- Web前端文档阅读笔记-vis.js动态添加节点(vue cli环境)
这里主要是针对vis的network图进行节点动态添加 图用的是vis.js,表单使用的是element-ui 程序运行截图如下: 添加一个节点: 这里是不需要刷新页面就能添加的. 程序结构如下: 关 ...
最新文章
- js的eval函数解析后台返回的json数据时为什加上圆括号eval((+data+)),而HTML页面定义的数据不用...
- 一分钟详解鱼眼镜头标定基本原理及实现
- 052_CSS3 appearance属性
- curl封装php,PHP封装curl的简单方法
- Fragment Summary 2/2
- okhttputils java_Java OkHttpUtils.post方法代码示例
- android 键盘遮盖输入框_Android软键盘挡住输入框的终极解决方案
- Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell
- javascript 西瓜一期 09 字符与编码的对应关系 理解
- python库下载安装报错_python安装第三方库报错visual c++ 14.0 is required
- vue 实现文本的拖拽_Vue-实现简单拖拽(自定义属性)
- 《圈圈教你玩USB》之 USB鼠标 描述符
- 三菱plc pwm指令_三菱PLC初学者只要解决这50个问题,那你就觉得很容易上手?
- 免费中文版Adobe Acrobat Reader DC PDF文件阅读软件
- 在局域网内怎样使两台计算机共享,怎么使两台电脑共享数据?
- autojs之启动页
- Linux之setenv()/getenv()设置/获取环境变量
- PYNQ-overlay
- 倍福PLC基于NT_Shutdown实现控制器自动关机重启
- 电机调速设计并用matlab仿真,终稿毕业论文设计_基于PWM控制的直流电动机调速系统设计及MATLAB仿真.doc最终版(备份存档)...
热门文章
- check的用法java,Java ValueRange checkValidValue()用法及代码示例
- 高考计算机如何检索投档,2021年高考平行志愿如何投档?
- 给数组倒序_22个超详细的 JS 数组方法
- css设定div固定比例,响应式网页中,如何只用CSS实现div的高和宽保持固定比例
- 官宣弃用Java 8!Kafka 3.0.0 新功能get
- K8S面试大通关!赶紧收藏!
- 皮一皮:谁没有年少轻狂过...
- 用了10年的微信表情,它居然偷偷把烟给戒了...
- ​赠书:面向对象的两大迷思,再给你们解答一次
- 每日一皮:一直认为写代码的自己有点小帅