Получить отредактированный TreeNode от CellEditorListener

Ранее я спрашивал, как вызвать событие, когда TreeNode был переименован (Вот). На мой вопрос ответили, но я столкнулся с другой проблемой. Мне нужно получить доступ к TreeNode, который редактируется в событии CellSditorListener editStopped. Вот код, который я должен сделать так:

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());
    }
}

Я получаю эту ошибку:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.tree.DefaultTreeCellEditor$1 cannot be cast to javax.swing.tree.DefaultTreeCellEditor

РЕДАКТИРОВАТЬ: В другой попытке я использовал этот код в CustomCellEditorListener

public void editingStopped(ChangeEvent e) {
    TreePath path = ((CustomTreeCellEditor) e.getSource()).getLastPath();  //This gives me the error.
    CustomTreeNode node = (CustomTreeNode) path.getLastPathComponent();
    node.getResource().setName((String) node.getUserObject());

    //For debugging
    System.out.println(node.getResource().getName());
}

и этот код в CustomTreeCellEditor

public TreePath getLastPath() {
    return lastPath;
}

Я получил ту же ошибку (я ожидал, что будет). Что у меня должно работать, так что единственный реальный вопрос остается: «Почему я получаю сообщение об ошибке и как я могу это исправить?», & Quot; но если у кого-то есть лучший способ сделать это, я готов выслушать.

РЕДАКТИРОВАТЬ 2: Я сделал небольшой пример того, чего я пытаюсь достичь, и который можно найти.Вот (Это архив Eclipse).

Ответы на вопрос(2)

Ваш ответ на вопрос