JTreeノードを編集すると、ノードのユーザーオブジェクトは失われます(文字列に設定されます)。元のユーザーオブジェクトを取得するにはどうすればよいですか?データベース内の編集された名前を更新するために、ユーザーオブジェクトのIDを取得したいからです。
以下に示すように、TreeModelListenerのtreeNodesChangedメソッドを使用しています。
public void treeNodesChanged(TreeModelEvent e) {
DefaultMutableTreeNode node;
node = (DefaultMutableTreeNode) (e.getTreePath().getLastPathComponent());
try {
int index = e.getChildIndices()[0];
node = (DefaultMutableTreeNode) (node.getChildAt(index));
} catch (NullPointerException ex) {}
System.out.println(node.getUserObject().getClass()); // my user object gone
}
では、編集する前に元のユーザーオブジェクトを取得する方法はありますか?オーバーライドするDefaultTreeCellRendererまたはDefaultTreeCellEditorメソッドはありますか?