ツリーノードの変更

1174 ワード

jtreeツリーノードを変更するには、ツリーノードの編集イベントを登録してから、編集クラスでeditingStoppedとeditingCanceledの2つの方法を書き換える必要があります.次のようにします.

    :
tree.getCellEditor().addCellEditorListener(new Tree_CellEditorAction());

     :
    class Tree_CellEditorAction implements CellEditorListener {
        public void editingStopped(ChangeEvent e) {
            Object selectnode = tree.getLastSelectedPathComponent();
            DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectnode;
            CellEditor cellEditor = (CellEditor) e.getSource();
            String newName = (String) cellEditor.getCellEditorValue();

            Object object = lastEditedNode.getUserObject();
            node.setUserObject(newName);
            

            DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
            model.nodeStructureChanged(node);
            tree.setEditable(false);
        }

        public void editingCanceled(ChangeEvent e) {
            editingStopped(e);
        }
    }