我有一个可编辑的JTree,我为它添加了TreeModelListener。我想知道如何在编辑后记录(获取)每个节点的原点值。
所以,在@MadProgrammer和@Sergiy梅德文斯基的帮助下,我实现了这个目标。我在 DefaultTreeModel 中@Override valueForPathChanged(TreePath path, Object newValue),使用路径找出编辑后的节点,然后获取它的 UserObject 即 oldValue.关键点是在 super.valueForPathChanged(path, newValue) 之前编写自己的代码;这样你就可以得到旧价值。样本:
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);
}
};