swing·通讯录项目预备知识之JTree之节点的添加和右键菜单显示的完善

1.昨天的代码有一处不完善的地方就是,右键菜单和菜单栏用的是同一组Menu 和Menu Item,但是只有右键菜单能显示出来,而菜单栏整体消失了,经师傅指点小小的测试了下,把以下代码放入到jm_addGroupActionPerformed事件中

1 jpm1.add(this.jm_function);

同时删除以下在构造方法中三句代码

1 jpm1.add(this.jm_function);
2 jpm1.addSeparator();//添加分隔符
3 jpm1.add(this.jm_help);

即可,这里留个小小的悬念,就是为什么会是这样的情况,日后再说。。。。当然,各位大大知道的还望及时指点

 

2.实现右键菜单的添加组的功能

菜单的添加删除修改等功能参考自   http://bbs.csdn.net/topics/20139128  3楼

只要对添加组这个菜单项添加事件监听即可,代码如下

1     //添加组
2     private void jm_addGroupActionPerformed(java.awt.event.ActionEvent evt) {
3         currTreeNode = (DefaultMutableTreeNode) jtree_group.getLastSelectedPathComponent();
4         DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新增节点");
5         currTreeNode.add(newNode);
6         DefaultTreeModel model = (DefaultTreeModel) jtree_group.getModel();
7         model.nodeStructureChanged(currTreeNode);
8     }

API中关于nodeStructureChanged方法的介绍:

public void nodeStructureChanged(TreeNode node)
如果完全更改了节点的子节点、子节点的子节点、依此类推,则调用此方法。调用此方法将发布 treeStructureChanged 事件。

3.删除组,同添加组一样,实质是增删节点
1 private void jm_deleteGroupActionPerformed(java.awt.event.ActionEvent evt) {
2         // TODO add your handling code here:
3         DefaultTreeModel model = (DefaultTreeModel) jtree_group.getModel();
4         model.removeNodeFromParent(currTreeNode);
5     }
 
 

 

4.重命名可以通过勾选JTree的属性框的editable实现,代码省。


欢迎光临我师傅小锋哥的网站 Java知识分享网 www.java1234.com 有大量Java资料供学习参考用,一切免费


转载于:https://www.cnblogs.com/hipk/articles/3120132.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值