我在创建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
相对照:私人TreeSelectionListener createSelectionListener(){
返回(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);
};
}
我要解决所有这些错误吗?还是我缺少明显的东西?
最佳答案
您不能在非功能性接口上使用lambda表达式。功能接口只有一种抽象方法。
TreeExpansionListener
TreeSelectionListener
private TreeExpansionListener createExpansionListener() {
return new TreeExpansionListener(){
// implement methods and do stuff...
}
}