小编jim*_*346的帖子

从CellEditorListener获取Edited TreeNode

之前我曾问过在重命名TreeNode时如何触发事件(这里).我的问题得到了回答,但我遇到了另一个问题.我需要在CellEditorListener的editingStopped事件中访问正在编辑的TreeNode.这是我必须这样做的代码:

package com.gamecreator;

import javax.swing.event.CellEditorListener;
import javax.swing.event.ChangeEvent;
import javax.swing.tree.DefaultTreeCellEditor;

public class CustomCellEditorListener implements CellEditorListener {
    public CustomCellEditorListener() {

    }

    public void editingCanceled(ChangeEvent e) {

    }

    public void editingStopped(ChangeEvent e) {
        DefaultTreeCellEditor editor = (DefaultTreeCellEditor) e.getSource(); //This gives me the error.
        CustomTreeNode node = //What do I put here???;
        node.getResource().setName((String) node.getUserObject());

        //For debugging
        System.out.println(node.getResource().getName());
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

异常的线程 "AWT-EventQueue的-0" java.lang.ClassCastException:javax.swing.tree.DefaultTreeCellEditor中的$ 1不能转换为javax.swing.tree.DefaultTreeCellEditor中

编辑:在另一次尝试中,我在CustomCellEditorListener中使用了此代码

public void editingStopped(ChangeEvent e) {
    TreePath path = ((CustomTreeCellEditor) e.getSource()).getLastPath();  //This gives me the error.
    CustomTreeNode node …
Run Code Online (Sandbox Code Playgroud)

java events swing treenode rename

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

events ×1

java ×1

rename ×1

swing ×1

treenode ×1