1

我在创建TreeExpansionListener. 我认为它可以像TreeSelectionListener. 不幸的是,我找不到正确的界面。

这是我的听众:

private TreeExpansionListener createExpansionListener() {
    return (TreeExpansionEvent event) -> {
        TreePath path = event.getPath();
        DefaultMutableTreeNode node = (DefaultMutableTreeNode) path.getLastPathComponent();
        String data = node.getUserObject().toString();
        System.out.println("Expanded: " + data);
    };
}

我收到的错误是“不兼容的类型:TreeExpansionListener 不是功能接口。在 TreeExpansionListener 中找到多个非覆盖抽象方法”

与我的比较TreeSelectionListener: private TreeSelectionListener createSelectionListener() { return (TreeSelectionEvent e) -> {

        node = (DefaultMutableTreeNode) template_tree.getLastSelectedPathComponent();
        if ((node == null){ 
            return;
        } else {
DefaultMutableTreeNode node = (DefaultMutableTreeNode)   path.getLastPathComponent();
        String data = node.getUserObject().toString();
        System.out.println("Expanded: " + data);
        };
}

我对这一切都错了吗?还是我错过了一些明显的东西?

4

1 回答 1

1

您不能在非功能接口上使用 lambda 表达式。一个函数式接口只有一个抽象方法。

树扩展监听器

树选择监听器


private TreeExpansionListener createExpansionListener() {
   return new TreeExpansionListener(){
   // implement methods and do stuff...
   }
}
于 2015-11-11T11:45:28.777 回答