Цитата(ShkVal @ 16.11.2004, 18:40) | Цитата(Domestic @ 16.11.2004, 17:04) | Код | TreePath path = tree.getSelectionPath(); if (path == null) return; Node node = (Node)path.getLastPathComponent(); final TreeNode parent = node.getParent(); node.removeFromParent(); ((DefaultTreeModel)tree.getModel()).nodeStructureChanged(parent);
|
ПС. я туt код менял, т.к. скопировал со своего класса |
что-то у меня не заработало. Вот мой код
Код | public void showContextMenu(JTree tree,MutableTreeNode treeNode,int x,int y) { JPopupMenu menu=new JPopupMenu(); lastTreeNode=(DefaultMutableTreeNode)treeNode; lastTree=(XmlTree)tree; menu.add(new JMenuItem(new AbstractAction("Delete module") { public void actionPerformed(ActionEvent event) { lastTreeNode.removeFromParent(); final TreeNode parent = lastTreeNode.getParent(); ((DefaultTreeModel)lastTree.getModel()).nodeStructureChanged(parent); } })); menu.show(appData.getFrame().getLeftPanel(), x, y); }
|
Т. е. тут через контекстное меню хочу удалить. Само удаление происходит тут
Код | public void actionPerformed(ActionEvent event) { lastTreeNode.removeFromParent(); final TreeNode parent = lastTreeNode.getParent(); ((DefaultTreeModel)lastTree.getModel()).nodeStructureChanged(parent); } }));
|
В общем почему-то не работает подскажите в чём ошибка. |
Спасибо FAQ. Получилось таким образом
Код | public void actionPerformed(ActionEvent event) { // lastTreeNode.removeFromParent(); // final TreeNode parent = lastTreeNode.getParent(); // ((DefaultTreeModel)lastTree.getModel()).nodeStructureChanged(parent); DefaultTreeModel model = (DefaultTreeModel)lastTree.getModel(); model.removeNodeFromParent(lastTreeNode); }
| |