修改jtree树节点时,需要先注册树节点的编辑事件,然后在编辑类中重写editingStopped和editingCanceled两个方法即可实现,如下:
注册事件:
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);
}
}