java树 JTree实例(可动态添加节点)
来源:互联网 发布:帽子vpn软件下载 编辑:程序博客网 时间:2024/06/18 13:24
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
);
}
}
0 0
- java树 JTree实例(可动态添加节点)
- JTree 添加删除节点
- JTree添加节点
- Jtree动态加载节点
- java JTree树 叶子节点 不同图标
- JTree 编辑、删除、添加节点
- JTree 添加删除搜索节点
- jTree 添加、编辑、删除节点
- JTree 编辑、删除、添加节点
- JTree 编辑、删除、添加节点
- 实现JTree双击节点的可编辑
- JAVA SWing JTree 节点现实问题
- 使用JTree增加,删除,重命名节点,延迟和即时加载树结点完整实例
- JTree右键菜单实现编辑、添加、删除节点
- JTree右键菜单实现编辑、添加、删除节点
- 一个JTree节点添加、删除和修改的例子
- jtree 默认展开树的全部节点
- Ext入门之---动态添加树节点
- C# -- sql多表之间的数据查询
- index
- SpringBoot非官方教程 | 第一篇:构建第一个SpringBoot工程
- 将输入流InputStream转换为String
- Java学习笔记
- java树 JTree实例(可动态添加节点)
- 数独破解(回溯,暴力dfs+剪枝)
- Logistic回归模型(C++代码实现)
- [LeetCode]275. H-Index II
- TopCoder-AB
- 带你玩转安卓的开源框架
- codeforces 798B
- 升级 SpringMVC 4.2.5 com/fasterxml/jackson/core/JsonProcessingException
- CentOS下go 语言开发环境源码安装