`
夜乡晨
  • 浏览: 36424 次
  • 性别: 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在窗口中添加树形菜单TreeView.rar

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

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

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

    swing界面设计之JTree

    (五) JTree右键菜单实现编辑、添加、删除节点 63 Test.java源代码 63 (六) 功能齐全的JTree例子 66 TreeEditTest.java源代码 66 (七) JTree控件的使用 70 构造函数: 70 TreeModel接口 70 DefaultTreeModel缺省版本 ...

    Java开发技术大全(500个源代码).

    showInstVar.java 演示不同的对象拥有不同的成员变量 showMain.java 演示main方法访问本类成员 showMethod.java 演示如何定义一个方法体 showReturn_1.java return语句示例1 showReturn_2.java return语句示例2...

    Exa2-文本编辑器的设计

    初始化界面左边的JTree,设置它的根节点为“正在编辑的文件”,使用DefaultMutableTreeNode的add方法为根节点添加一个子节点,表示编辑器初始状态时时新建一个文件。JTree的setEditable方法设置树不可编辑。 初始化...

    疯狂JAVA讲义

    学生提问:为什么即使我没有给多行文本域编写右键菜单,但当我在多行文本域上单击右键时一样会弹出右键菜单? 418 11.7 在AWT中绘图 418 11.7.1 画图的实现原理 418 11.7.2 使用Graphics类 419 11.8 处理位图 ...

    JAVA 仿windows资源管理器的文件树

    该程序能够在jFrame的窗口下显示一棵文件树,树的节点与系统文件相对应,右键可以显示菜单,节点有windows的图标,非常好的一个java程序

    Java数据库编程宝典3

    10.3.1 在JTree中显示DatabaseMetaData 10.4 检索有关RDBMS功能性的信息 10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性...

    Java数据库编程宝典2

    10.3.1 在JTree中显示DatabaseMetaData 10.4 检索有关RDBMS功能性的信息 10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性...

    Java数据库编程宝典4

    10.3.1 在JTree中显示DatabaseMetaData 10.4 检索有关RDBMS功能性的信息 10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性...

    Java数据库编程宝典1

    10.3.1 在JTree中显示DatabaseMetaData 10.4 检索有关RDBMS功能性的信息 10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性...

    javaSE代码实例

    1.1.1 Java的不同平台 3 1.1.2 Java发展的历程 3 1.1.3 Java的特点 4 1.2 安装开发工具包 5 1.2.1 下载JDK 5 1.2.2 安装JDK 6 1.2.3 安装后Java目录的解读 7 1.3 学会使用API 7 1.4 第一个Java程序...

Global site tag (gtag.js) - Google Analytics