我有一个可编辑的JTree,我为它添加TreeModelListener。我想知道如何在编辑后为每个节点记录(获取)原始值。
答案 0 :(得分:0)
所以,在@MadProgrammer和@Sergiy Medvynskyy的帮助下,我实现了这个目标。 我在DefaultTreeModel中@Override valueForPathChanged(TreePath path,Object newValue),使用path查找已编辑的节点,然后使用getUserObject,它是oldValue。关键点是在super.valueForPathChanged(path,newValue)之前编写自己的代码;这样你就可以获得oldValue。 样品:
typelTreeModel = new DefaultTreeModel(typeTreeRoot){
@Override
public void valueForPathChanged(TreePath path, Object newValue) {
DefaultMutableTreeNode editNode = (DefaultMutableTreeNode) path.getLastPathComponent();
int level = editNode.getLevel();
if(level == 2){
String oldValue = (String) editNode.getUserObject();
System.out.println(oldValue);
}
super.valueForPathChanged(path, newValue);
}
};