Lean about Swing for JTree,A simple sample that you can add sibling,add child and delete a node...
1:TreeEditFrame.java
@SuppressWarnings("serial")
public class TreeEditFrame extends JFrame {
private JTree tree;
private DefaultTreeModel model;
private static final int DEFAULT_WIDTH = 400;
private static final int DEFAULT_HEIGHT = 200;
public TreeEditFrame(){
setTitle("TreeEditFrameTest");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
TreeNode root = makeSampleTree();
model = new DefaultTreeModel(root);
tree = new JTree(model);
tree.setEditable(true);
JScrollPane scrollPane = new JScrollPane(tree);
add(scrollPane,BorderLayout.CENTER);
makeButtons();
}
public TreeNode makeSampleTree(){
DefaultMutableTreeNode root = new DefaultMutableTreeNode("World");
//定义一个国家
DefaultMutableTreeNode country = new DefaultMutableTreeNode("USA");
root.add(country);
DefaultMutableTreeNode state = new DefaultMutableTreeNode("California");
country.add(state);
DefaultMutableTreeNode city = new DefaultMutableTreeNode("San Jose");
state.add(city);
state = new DefaultMutableTreeNode("Michigan");
country.add(state);
city = new DefaultMutableTreeNode("Ann Arbor");
state.add(city);
//在定义一个国家
country = new DefaultMutableTreeNode("中国");
root.add(country);
DefaultMutableTreeNode province = new DefaultMutableTreeNode("安徽省");
country.add(province);
DefaultMutableTreeNode city2 = new DefaultMutableTreeNode("合肥市");
province.add(city2);
DefaultMutableTreeNode county = new DefaultMutableTreeNode("XX县");
city2.add(county);
return root;
}
//创建几个按钮
public void makeButtons(){
JPanel panel = new JPanel();
//添加按钮并处理添加兄弟节点事件
JButton addSiblingButton = new JButton("Add Sibling");
addSiblingButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(selectedNode == null){
return;
}
DefaultMutableTreeNode parent = (DefaultMutableTreeNode)selectedNode.getParent();
if(parent == null){
return;
}
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("New");
int selectedIndex = parent.getIndex(selectedNode);
model.insertNodeInto(newNode, parent, selectedIndex + 1);
//显示新的节点
TreeNode[] nodes = model.getPathToRoot(newNode);
TreePath path = new TreePath(nodes);
tree.scrollPathToVisible(path);
}
});
panel.add(addSiblingButton);
//添加子节点和处理事件
JButton addChildButton = new JButton("Add Child");
addChildButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(selectedNode == null){
return;
}
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("New");
model.insertNodeInto(newNode, selectedNode, selectedNode.getChildCount());
//显示新节点
TreeNode[] nodes = model.getPathToRoot(newNode);
TreePath path = new TreePath(nodes);
tree.scrollPathToVisible(path);
}
});
panel.add(addChildButton);
//删除子节点和处理事件
JButton deleteButton = new JButton("Delete");
deleteButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(selectedNode != null && selectedNode.getParent() != null){
model.removeNodeFromParent(selectedNode);
}
}
});
panel.add(deleteButton);
add(panel,BorderLayout.SOUTH);
}
}
2:TreeEditTest.java
public static void main(String[] args) {
JFrame frame = new TreeEditFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
- 大小: 16.2 KB
分享到:
相关推荐
JavaSwing 中的 JTree 模型 JavaSwing 中的 JTree 模型是一种树形结构的展示方式,使用人们所熟悉的文件夹和树叶图来显示分层的数据。树由节点组成,节点可以是文件夹,也可以是树叶。文件夹可以有子节点,除根节点...
Java Swing中的JTree组件是用来展示层次结构数据的可视化控件,它通常用于文件系统或组织结构的表示。JTree的核心是TreeNode接口,每个节点都对应一个TreeNode对象。TreeNode定义了一系列方法,如`getChildCount()`...
在Java Swing中,JTree是一个非常重要的组件,用于展示层次结构的数据,通常以树状的形式显示。它在各种用户界面中都有广泛的应用,例如文件系统浏览、组织结构展示等。本教程将深入讲解如何使用JTree以及相关的操作...
Swing中的JTree组件是Java GUI(图形用户界面)开发中的一个重要组成部分,它允许程序员创建和展示层次结构数据。在Java Swing库中,JTree是一个用于显示和操作树形数据结构的视图组件。这个“Swing-JTree.rar”文件...
在Java的Swing库中,JTree是一个非常重要的组件,用于展示层次结构的数据。它以树状的形式显示信息,使得用户能够浏览和交互这些数据。本篇“JAVA中的Swing的JTree操作的宝典”将深入探讨如何进行树节点的增加、删除...
1. 掌握JTree应用,树节点的操作; 2. 使用JTree展数,管理对象。
**Test.java源代码**:示例代码展示了如何在JTree上添加右键菜单,并实现编辑、添加、删除等功能。 #### (六) 功能齐全的JTree例子 **TreeEditTest.java源代码**:示例代码展示了如何使用JTree进行复杂的树结构...
### JTree用法详解:Swing中的树状结构控件 在Java Swing中,`JTree`是一个非常重要的组件,用于展示层次结构的数据,如文件系统、组织结构图等。本文将详细介绍`JTree`的各种使用方法,包括如何创建、自定义外观、...
`JTree` 是 Java Swing 中用于显示树状结构的数据组件。它继承自 `JComponent` 类,并且实现了 `Scrollable` 接口,这使得 `JTree` 能够在滚动面板 (`JScrollPane`) 中使用。 #### 二、构造方法 `JTree` 提供了...
博文链接:https://xiancoder.iteye.com/blog/75830
Swing 提供了大量组件,如按钮 (JButton),文本框 (JTextField),滚动面板 (JScrollPane),列表视图 (JList),表格 (JTable),树形视图 (JTree),以及对话框 (JOptionPane) 等。这些组件都继承自 javax.swing....
Swing中的JTree组件是Java GUI(图形用户界面)设计中的一个重要组成部分,它允许用户以树状结构展示数据。在Java Swing库中,JTree是一个用于显示和操作数据的可视控件,通常用来呈现层次化的信息,如文件系统目录...
JFrame frame = new JFrame("JTree Test"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); IconNode root = new IconNode("Root"); IconNode node1 = new IconNode(new ImageIcon("image1.ico"), ...
在Java的Swing库中,`JTree`组件是一个强大的工具,用于展示层次结构的数据,如文件系统目录结构。这个组件允许用户以图形化的方式浏览和操作这些数据,包括展开、折叠节点,以及选择和编辑特定节点。在"Swing展示的...
JTree是Java Swing中的一个组件,用于展示层次结构的数据,通常用于文件系统或树状数据模型的可视化表示。它允许用户浏览、选择和操作树形结构中的节点。JTree可以动态加载数据,支持节点的展开、折叠、选择和拖放...