1
我在創建TreeExpansionListener
時遇到問題。我認爲它可以像TreeSelectionListener
一樣簡單。不幸的是我找不到正確的界面。如何創建JTree ExpansionListener
這裏是我的聽衆:
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發現多個非壓倒一切的抽象方法。」
compaired我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);
};
}
我對這一切都錯了嗎?還是我錯過了明顯的東西?
所以你說我不能在另一個lambda表達式添加到其他非功能性接口?所以我不得不把它擴展爲'private TreeExpansionListener createExpansionListener(){DefaultMutableTreeNode node =(DefaultMutableTreeNode)path.getLastPathComponent(); String data = node.getUserObject()。toString(); System.out.println(「Expanded:」+ data);};' – Nina
@Nina看到我的編輯 –
K這確實有效。我不明白爲什麼lambda表達式不起作用,除非功能接口是樹而不是我認爲的監聽器。 – Nina