java jtree 不同节点上的不同菜单添加方式
2010-04-26 16:04
针对这个问题,我想了好久,从网上也搜索过资料,但好像没有完整的解决方法。 后来我想到了一种方
法,经验证是成功的,在这里,我记录下我的方法,希望对有需要的同志们有帮助。能够相互学习和交流。
简述思路:
基本思想是:根据一个节点只有一个父节点的理念。
已经条件:我们在编写程序时,肯定知道在哪层节点上使用什么菜单。
首先获取需要添加弹出菜单的节点,根据其父节点的层次来设置菜单。
例子:
DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode("室外柜");//根节点
JTree jtree1 = new JTree(rootNode );
jtree1.addMouseListener(this); //添加鼠标监听器:单击右键,弹出添加菜单
public void mouseReleased(MouseEvent e){//弹出菜单
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) jtree1.getLastSelectedPathComponent();//获取选中的节点
DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) selectedNode.getParent();
JPopupMenu popMenu = new JPopupMenu(); //获取选中节点的父节点
if(e.isPopupTrigger()){ //判断是否为右键单击,以便实现右键弹出菜单
if(parentNode == null){//根节点的弹出菜单,用来添加二级节点
JMenuItem MenuRootNode = new JMenuItem("添加");
popMenu.add(MenuRootNode);
MenuRootNode.addActionListener(this);
}else{//二级节点的弹出菜单
JMenuItem MenuLeafNode1 = new JMenuItem("通道参数设置");
JMenuItem MenuLeafNode2 = new JMenuItem("温度设置");
JMenuItem MenuLeafNode3 = new JMenuItem("数据采集");
popMenu.add(MenuLeafNode1);
popMenu.add(MenuLeafNode2);
popMenu.add(MenuLeafNode3);
MenuLeafNode1.addActionListener(this);
MenuLeafNode2.addActionListener(this);
MenuLeafNode3.addActionListener(this);
}
popMenu.show(e.getComponent(), e.getX(), e.getY()); //弹出菜单的显示位置
}
}
分享到:
相关推荐
综上所述,"java网页树状菜单(可添加删除节点)"项目涵盖了Java UI开发中的基本概念,如数据模型、事件处理、界面设计等,同时也涉及到优化和扩展策略,对学习和实践Java图形用户界面编程具有很高的参考价值。...
本文将详细讲解如何使用Java来构建一个动态的、可交互的树型菜单,包括从数据库获取数据、创建树节点、实现添加和删除节点的功能。 首先,我们需要了解Java中的树型组件。在Java Swing库中,`JTree`是用于展示树型...
在Java编程语言中,创建树菜单通常涉及到Swing库中的JTree组件。JTree是用于在GUI(图形用户界面)中展示层次结构数据的一种控件,它可以用来模拟文件系统、组织结构或者任何具有层级关系的数据。下面将详细介绍如何...
5. **自定义外观**: Java Swing提供了多种方式来定制`JTree`的外观,包括通过`CellRenderer`来自定义节点的显示样式,以及通过`CellEditor`来控制用户编辑节点的能力。 6. **动态更新**: 在某些情况下,树的数据...
根据提供的文件信息,我们可以分析并总结出以下关于...综上所述,本案例主要介绍了如何使用Java Swing构建一个树形结构,并通过监听用户事件动态修改主节点的名称。这对于开发具有动态更新需求的应用程序非常有用。
综上所述,"用XML来配置的多级目录树菜单插件JTree2.0"是一个使用Java Swing的JTree组件,并利用XML作为配置文件的工具。它旨在帮助开发者构建直观、灵活的多级菜单导航系统,同时简化了菜单结构的定义和维护。通过...
当用户在`JTree`上点击右键时,可以通过监听鼠标事件并显示`JPopupMenu`来提供一系列与选中节点相关的操作。例如,用户可以右键点击某个表节点,弹出的菜单中包含“查看数据”、“编辑表结构”、“删除表”等选项。...
在用户界面设计上,除了`JTree`之外,可能还会使用`JFrame`作为主窗口,`JMenuBar`和`JMenu`来创建菜单栏,提供文件操作的快捷方式。`JOptionPane`可以用来显示警告或确认对话框,确保用户确认关键操作。 最后,...
测试文件`Test`可能包含了测试代码,用于验证树形菜单的正确性,例如创建不同的树结构,检查节点的添加、删除、展开和折叠等功能是否正常工作。 理解并实现这样的源码可以帮助开发者深入掌握Java Swing中的树形数据...
Java在窗口中添加树形菜单TreeView源代码,分享给JAVA新手的一个例子,JTextField jtfInfo; //文本域,用于显示点击的节点名称 public JTreeDemo(){ super("森林状的关系图"); //调用父类构造函数 ...
6. **自定义渲染**: JTree默认的渲染方式可能不能满足所有需求,可以通过实现`TreeCellRenderer`接口来自定义每个节点的显示样式。 7. **JavaFX的TreeView**: 如果案例使用了JavaFX,那么`TreeView`类将替代Swing的...
6. **自定义渲染**:如果需要自定义节点的显示,可以实现`TreeCellRenderer`接口并设置为`JTree`的渲染器。 在压缩包中的`SampleTree`示例可能包含了实现上述步骤的代码,包括创建`TreeNode`子类、构建树模型、添加...
6. **布局和容器**:最后,将`JTree`组件添加到容器(如`JFrame`或`JPanel`)中,设置布局管理器以决定其在屏幕上的位置。 ```java import javax.swing.JFrame; JFrame frame = new JFrame("树形菜单示例"); frame...
4. **节点图标与展开状态**:说明如何设置不同类型的节点图标以及控制节点的展开和折叠。 5. **用户交互**:包含如何处理用户的点击、拖放操作,以及如何添加右键菜单。 6. **性能优化**:讨论懒加载策略,仅在需要...
Java漂亮的树形菜单制作实例(源码),森林状的关系图,文本域,用于显示点击的节点名称,使用了JTree,可以看作是一个jTree的用法演示实例。树形菜单应用广泛,这个Tree制作漂亮,相信会让很多朋友从中学习到实现的...
在Java编程中,树形菜单是一种常见的用户界面元素,它以层次结构展示数据,使得用户可以方便地浏览和操作多级分类信息。本资源提供的"java树形菜单源码"是一个实现这一功能的实例,旨在帮助开发者更好地理解和应用树...
总结起来,`Java Swing`中的`JMenu`、`JTable`和`JTree`组件提供了丰富的功能,帮助开发者构建具有菜单、表格和树状视图的用户界面。理解并熟练运用这些组件,可以极大地提高Java桌面应用的用户体验和交互性。在`...
Java CS编程,或者说Java桌面应用开发,涉及到许多关键组件和技术,包括JTree、JTable、File操作、DOM解析以及GridBagLayout。以下是对这些主题的详细讲解: **JTree**: JTree是Java Swing库中的一个组件,用于...
- **MyDefaultTreeCellRenderer.java源代码**:示例代码展示了如何定制JTree节点的渲染器。 #### (十五) JTree控件 **树和节点的基本概念**:介绍了树的基本概念和节点之间的关系。 - **有关树JTree的类和接口**:...