我目前的JTree设置如下
问题是,如何删除任何选定的孙子?当我尝试root.removeNodeFromParent(...)时,它似乎只适用于Child 1和Child 2而不是Grandchild。
DefaultTreeModel model = (DefaultTreeModel) workspaceTree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
DefaultMutableTreeNode child = (DefaultMutableTreeNode) root.getChildAt(0);
child.remove(new DefaultMutableTreeNode("Grandchild 1.1"));
model.reload(root);
我有这样的错误,说小孩作为一个孩子
答案 0 :(得分:2)
使用DefaultTreeModel.removeNodeFromParent()
public void removeNodeFromParent(MutableTreeNode node)
发送消息以从其父节点中删除节点。这将消息nodesWereRemoved创建适当的事件。这是在为您处理事件创建时删除节点的首选方法。
例如:
DefaultMutableTreeNode grandChild = (DefaultMutableTreeNode) child.getChildAt(0);
model.removeNodeFromParent(grandChild);
// no need to reload the root