`
夜乡晨
  • 浏览: 37520 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

java jtree 不同节点上的不同菜单添加方式

阅读更多

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网页树状菜单(可添加删除节点)"项目涵盖了Java UI开发中的基本概念,如数据模型、事件处理、界面设计等,同时也涉及到优化和扩展策略,对学习和实践Java图形用户界面编程具有很高的参考价值。...

    java 树型菜单建立

    本文将详细讲解如何使用Java来构建一个动态的、可交互的树型菜单,包括从数据库获取数据、创建树节点、实现添加和删除节点的功能。 首先,我们需要了解Java中的树型组件。在Java Swing库中,`JTree`是用于展示树型...

    java 创建树菜单

    在Java编程语言中,创建树菜单通常涉及到Swing库中的JTree组件。JTree是用于在GUI(图形用户界面)中展示层次结构数据的一种控件,它可以用来模拟文件系统、组织结构或者任何具有层级关系的数据。下面将详细介绍如何...

    java树形菜单

    5. **自定义外观**: Java Swing提供了多种方式来定制`JTree`的外观,包括通过`CellRenderer`来自定义节点的显示样式,以及通过`CellEditor`来控制用户编辑节点的能力。 6. **动态更新**: 在某些情况下,树的数据...

    java 实现动态改变树形结构中主节点的名称

    根据提供的文件信息,我们可以分析并总结出以下关于...综上所述,本案例主要介绍了如何使用Java Swing构建一个树形结构,并通过监听用户事件动态修改主节点的名称。这对于开发具有动态更新需求的应用程序非常有用。

    用XML来配置的多级目录树菜单插件JTree2.0

    综上所述,"用XML来配置的多级目录树菜单插件JTree2.0"是一个使用Java Swing的JTree组件,并利用XML作为配置文件的工具。它旨在帮助开发者构建直观、灵活的多级菜单导航系统,同时简化了菜单结构的定义和维护。通过...

    jtree和QQ项目\带有右键的树(数据库)

    当用户在`JTree`上点击右键时,可以通过监听鼠标事件并显示`JPopupMenu`来提供一系列与选中节点相关的操作。例如,用户可以右键点击某个表节点,弹出的菜单中包含“查看数据”、“编辑表结构”、“删除表”等选项。...

    文件管理器(Jtree实现)

    在用户界面设计上,除了`JTree`之外,可能还会使用`JFrame`作为主窗口,`JMenuBar`和`JMenu`来创建菜单栏,提供文件操作的快捷方式。`JOptionPane`可以用来显示警告或确认对话框,确保用户确认关键操作。 最后,...

    Java 实现的 简单树形菜单的生成 源码

    测试文件`Test`可能包含了测试代码,用于验证树形菜单的正确性,例如创建不同的树结构,检查节点的添加、删除、展开和折叠等功能是否正常工作。 理解并实现这样的源码可以帮助开发者深入掌握Java Swing中的树形数据...

    Java在窗口中添加树形菜单TreeView.rar

    Java在窗口中添加树形菜单TreeView源代码,分享给JAVA新手的一个例子,JTextField jtfInfo; //文本域,用于显示点击的节点名称  public JTreeDemo(){   super("森林状的关系图"); //调用父类构造函数     ...

    java树形菜单案例

    6. **自定义渲染**: JTree默认的渲染方式可能不能满足所有需求,可以通过实现`TreeCellRenderer`接口来自定义每个节点的显示样式。 7. **JavaFX的TreeView**: 如果案例使用了JavaFX,那么`TreeView`类将替代Swing的...

    java 动态树型菜单实现

    6. **自定义渲染**:如果需要自定义节点的显示,可以实现`TreeCellRenderer`接口并设置为`JTree`的渲染器。 在压缩包中的`SampleTree`示例可能包含了实现上述步骤的代码,包括创建`TreeNode`子类、构建树模型、添加...

    关于树形菜单的实现 java

    6. **布局和容器**:最后,将`JTree`组件添加到容器(如`JFrame`或`JPanel`)中,设置布局管理器以决定其在屏幕上的位置。 ```java import javax.swing.JFrame; JFrame frame = new JFrame("树形菜单示例"); frame...

    JTree2.0

    4. **节点图标与展开状态**:说明如何设置不同类型的节点图标以及控制节点的展开和折叠。 5. **用户交互**:包含如何处理用户的点击、拖放操作,以及如何添加右键菜单。 6. **性能优化**:讨论懒加载策略,仅在需要...

    Java漂亮的树形菜单制作实例(源码).rar

    Java漂亮的树形菜单制作实例(源码),森林状的关系图,文本域,用于显示点击的节点名称,使用了JTree,可以看作是一个jTree的用法演示实例。树形菜单应用广泛,这个Tree制作漂亮,相信会让很多朋友从中学习到实现的...

    java树形菜单源码

    在Java编程中,树形菜单是一种常见的用户界面元素,它以层次结构展示数据,使得用户可以方便地浏览和操作多级分类信息。本资源提供的"java树形菜单源码"是一个实现这一功能的实例,旨在帮助开发者更好地理解和应用树...

    Java Swing Menu组件,JTable组件,JTree组件小示例

    总结起来,`Java Swing`中的`JMenu`、`JTable`和`JTree`组件提供了丰富的功能,帮助开发者构建具有菜单、表格和树状视图的用户界面。理解并熟练运用这些组件,可以极大地提高Java桌面应用的用户体验和交互性。在`...

    java cs编程 jtree jtable file dom xml GridBagPanel

    Java CS编程,或者说Java桌面应用开发,涉及到许多关键组件和技术,包括JTree、JTable、File操作、DOM解析以及GridBagLayout。以下是对这些主题的详细讲解: **JTree**: JTree是Java Swing库中的一个组件,用于...

    swing界面设计之JTree

    - **MyDefaultTreeCellRenderer.java源代码**:示例代码展示了如何定制JTree节点的渲染器。 #### (十五) JTree控件 **树和节点的基本概念**:介绍了树的基本概念和节点之间的关系。 - **有关树JTree的类和接口**:...

Global site tag (gtag.js) - Google Analytics