Jtree生成虚拟结点的 增删改查操作
来源:互联网 发布:阿里云虚拟主机 编辑:程序博客网 时间:2024/05/19 16:07
java swing Jtree 适用于具有树状分支 的资源管理,Jtree本身的DefaultTreeNode生成的虚拟结点,只具有展示意义,不具有实际意义,
DefaultMutableTreeNode root=new DefaultMutableTreeNode("root");
将root结点装载到树上,
其他的结点可以用DefaultTreeNode定义node,然后root.add(node);即可
同时可以为其设置右键菜单显示“增删改查操作”
public void setPopupMenu(JTree tree) {
final JPopupMenu pop = new JPopupMenu();
pop.add(new AbstractAction("添加子目录") {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode parentNode=null;
DefaultMutableTreeNode newNode=new DefaultMutableTreeNode("新建目录");
newNode.setAllowsChildren(true);
TreePath parentPath=tree.getSelectionPath();
//取得新节点的父节点
parentNode=(DefaultMutableTreeNode)(parentPath.getLastPathComponent());
((DefaultTreeModel) tree.getModel()).insertNodeInto(newNode,parentNode,parentNode.getChildCount());
}
});
pop.add(new AbstractAction("删除目录") {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
TreePath treepath=tree.getSelectionPath();
if (treepath!=null){
//下面两行取得选取节点的父节点.
DefaultMutableTreeNode selectionNode=(DefaultMutableTreeNode)treepath.getLastPathComponent();
TreeNode parent=(TreeNode)selectionNode.getParent();
if (parent!=null) {
//由DefaultTreeModel的removeNodeFromParent()方法删除节点,包含它的子节点。
((DefaultTreeModel) tree.getModel()).removeNodeFromParent(selectionNode);
}
}
}
});
pop.add(new AbstractAction("重命名") {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent e) {
TreePath path = tree.getSelectionPath();
tree.startEditingAtPath(path);
}
});
tree.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
if (e.isMetaDown()) {
pop.show(tree, e.getX(), e.getY());
}
}
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 1) {
}
}
});
}
- Jtree生成虚拟结点的 增删改查操作
- 生成增删改查
- 增删查改操作
- 嵌套表的操作(增删改查)
- java操作mysql的增删改查
- java操作mysql的增删改查
- map的 增删改查 操作
- Magento基础的增删改查操作
- DOM的增删改查操作
- Ibatis的增删改查操作
- 数据库的增删改查操作
- java操作mysql的增删改查
- SQLite的增删改查操作
- 关于hbase增删改查的操作
- 数组的增删改查操作
- DataTable的增删改查操作
- 02-iBatis的增删改查操作
- mongoVUE的增删改查操作使用说明
- C++友元类实现
- 首次使用树莓派2(安装系统+SSH+VNC+无线网络配置)
- Java 通过 JDBC 连接Mysql
- 1014. Waiting in Line (30)
- ionic环境搭建和安装
- Jtree生成虚拟结点的 增删改查操作
- USBFN Dump Packet Patchset
- android通用适配器的封装
- TCP协议和UDP协议的区别
- SQLServer中把某个表里的记录复制到另一个数据库的表中
- 模拟实现boost库里的智能指针
- kubernetes之Pod详解
- UnicodeDecodeError解决方案
- Bugly Android自动上传符号表