public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent();
if (selectNode == null) {
return;
}
// 事件命令
String command = e.getActionCommand();
if ("delete".equals(command)) { // 如果是删除
if (selectNode.getParent() != null) {
model.removeNodeFromParent(selectNode);
}
} else if ("insert".equals(command)) { // 如果是插入
String message = JOptionPane.showInputDialog("请输入您要插入子节点的名称"); // 点击取消返回null
if (message != null && !"".equals(message.trim())) {
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(
message);
model.insertNodeInto(newNode, selectNode, selectNode
.getChildCount());
}
} else if ("insertNode".equals(command)) { // 如果是插入
String message = JOptionPane.showInputDialog("请输入您要插入节点的名称"); // 点击取消返回null
if (message != null && !"".equals(message.trim())) {
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(
message);
DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) selectNode
.getParent();
if (parentNode != null) {
int selectIndex = parentNode.getIndex(selectNode);
model.insertNodeInto(newNode, parentNode, selectIndex + 1);
}
}
} else if ("update".equals(command)) { // 修改节点名称
String name = selectNode.getUserObject().toString();
String message = JOptionPane.showInputDialog(null, "请输入您要插入节点的名称",
name); // 点击取消返回null
if (message != null) {
selectNode.setUserObject(message);
tree.repaint();
}
} else if ("addstu".equals(command)) { // 增加学生
pnlStudent.setVisible(true);
cleanStuInput();
} else if ("updatestu".equals(command)) { // 修改学生信息
getTableValueToPanel();
} else if ("delstu".equals(command)) { // 删除学生信息
DefaultTableModel model = (DefaultTableModel) table.getModel();
int row = table.getSelectedRow();
if (row == -1) {
return;
}
String stuId = table.getValueAt(row, 5).toString(); // 学号
model.removeRow(row);
table.setModel(model);
table.repaint();
// 删除xml中的数据
(new StudentDao()).deleteStudent(selectNode.toString(), stuId);
}
}
// 为树设置图片
DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree
.getCellRenderer();
renderer.setOpenIcon(new ImageIcon("img/folderopen.gif"));
renderer.setClosedIcon(new ImageIcon("img/folder.gif"));
renderer.setLeafIcon(new ImageIcon("img/page.gif"));
renderer.setIcon(new ImageIcon("img/base.gif"));
分享到:
相关推荐
在你的项目中,你似乎正在探索如何在JTree的不同节点上显示特定的图片,这可以增强用户的视觉体验,使得界面更加生动和易理解。下面,我们将深入探讨如何实现这个功能。 首先,我们需要了解JTree的基本用法。JTree...
当我们说"jtree节点可编辑",这意味着我们正在讨论如何允许用户修改JTree中的节点文本或者进行其他交互式操作。这通常是通过实现特定的监听器和自定义模型来实现的。下面将详细阐述这一主题。 首先,JTree组件默认...
这个例子展示了如何实现一个可拖动节点的`JTree`,这在用户界面设计中是一个常见且实用的功能,特别是在需要展示层次结构信息时。`JTree`允许用户通过拖放操作来重新排列节点,提高交互性和用户体验。 拖放(Drag ...
在Java中动态实现二叉树,即在运行时根据需要创建、更新和操作树结构,这涉及到对数据结构和Swing组件的深入理解。 首先,二叉树是一种特殊的树形数据结构,每个节点最多有两个子节点,分别称为左孩子和右孩子。...
当我们在`JTree`中添加了复选框(CheckBox),我们增强了它的功能,使用户可以对每个节点进行选择或取消选择,这在多选场景下非常有用。在本实例中,我们将深入探讨如何创建一个具有复选框的`JTree`,以及相关的编程...
在`Jtree不同节点使用不同图片实现 - Alexander - 博客园.htm`这个资源中,作者可能分享了如何为jTree的各个节点设置不同图片的方法。通常,这需要实现`TreeCellRenderer`接口,并在`getTreeCellRendererComponent()...
// 设置叶子节点不采用图标 treeCellRenderer.setClosedIcon(null);// 设置节点折叠时不采用图标 treeCellRenderer.setOpenIcon(null);// 设置节点展开时不采用图标 Enumeration<?> enumeration; // 按...
然后,将构建好的树模型设置到`JTree`组件中,可以通过`JTree.setModel()`方法实现。这样,`JTree`就能显示文件系统的结构了。为了使界面更具交互性,还需要添加监听器,如`TreeSelectionListener`,以便在用户选择...
可以使用类选择器为不同状态的节点设置样式。 5. **JavaScript逻辑**: - **数据结构**:树的节点通常用JavaScript对象表示,包含文本、子节点数组以及状态信息(如是否展开)。 - **事件处理**:添加事件监听器...
例如,在已经添加的节点中不能更改其文本信息和图片信息,而且所有的叶子节点的图片都是通过 DefaultTreeCellRenderer 的方法 setLeafIcon() 来实现的,这点在实际的软件开发中是一个致命的漏洞。 为了解决这个问题...
这通常通过设置`TreeCellEditor`和`TreeCellRenderer`来实现。在日志管理系统中,可能需要编辑节点以更新日志条目。要实现编辑,可以调用`JTree`的`startEditingAtPath()`方法,并处理`TreeWillBeEditedEvent`。 5....
"jtree带复选框的例子"是一个关于如何在JTree中实现节点选择功能的示例,其中每个节点都有一个复选框供用户进行选择。这种功能在需要用户对树形结构数据进行多选操作的场景下非常实用。 在这个例子中,关键的特性是...
为了响应用户对复选框的更改,需要添加一个`TreeSelectionListener`,这样在节点被选中或取消选中时可以执行相应的逻辑。 ```java tree.addTreeSelectionListener(e -> { TreePath path = e.getPath(); ...
本文主要关注的是使用JAXP中的DOM接口来分析XML文档,并结合Java Swing库中的JTree组件,实现XML文档内容的图形化展示。DOM是一种将XML文档加载到内存中形成树形结构的模型,方便开发者通过节点操作来访问和修改XML...
- **权限控制**:结合后端权限系统,实现对节点的显示和操作权限控制。 总之,`JTree2.0` 是一个强大且灵活的 `JavaScript` 树形菜单组件,能够帮助开发者创建功能丰富的导航系统,提升网站或应用的用户体验。通过...
通过这种方式,可以很容易地构建复杂的树形结构,并根据需要动态添加或修改节点。 #### 总结 通过上述示例,我们可以看到`JTree`的灵活性及其在构建层次化数据结构方面的能力。无论是在构建简单的树还是复杂的多层...
在特定场景下,我们可能希望在`JTree`的节点上添加复选框(CheckBox),以便用户可以进行多选操作。在本示例中,我们将深入探讨如何实现`JTree`与复选框结合的代码实例。 首先,我们需要创建一个自定义的`...
模型负责处理节点的添加、删除和修改,并通知 `JTree` 进行相应的更新。 2. **节点(Node)**:在树中,每个可视化的元素都是一个节点。`DefaultMutableTreeNode` 是 `JTree` 的默认节点类型,它支持子节点的添加和...
- **图标支持**:可以为不同类型的节点设置不同的图标,增强视觉效果。 - **事件监听**:提供`TreeSelectionListener`、`TreeExpansionListener`等监听器,便于响应用户的操作。 - **多态显示**:通过`...