如何通过编辑更改树节点后获取原点值



我有一个可编辑的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);
                }
            };

最新更新