我刚接触JavaFX
,并且尝试创建一个TreeView
添加到Tab
。但是,当我将TreeView
添加到Tab
时,它为空。下面是创建,填充和添加TreeView
到Tab
的代码。
public ResultView(List<WebPage> results, int resultNum) {
this.pagesWithResults = results;
urls = new ArrayList<String>();
outputs = new ArrayList<>();
resultsTab = new Tab("Result" + resultNum);
resultTree = new TreeView<>();
branches = new ArrayList<>();
for(WebPage pageWithResults: pagesWithResults) {
this.urls.add(pageWithResults.getURL());
this.outputs.add(pageWithResults.getOutput());
}
TreeItem<String> root = new TreeItem<>();
root.setExpanded(true);
//resultTree.setShowRoot(false);
for(int i = 0; i < urls.size(); i++) {
branches.add(makeBranch(urls.get(i), root));
//System.out.println(urls.get(i));
for(int j = 0; j < outputs.get(i).size(); j++) {
makeBranch(outputs.get(i).get(j), branches.get(i));
//System.out.println(outputs.get(i).get(j));
}
}
resultsTab.setContent(resultTree);
}
public TreeItem<String> makeBranch(String title, TreeItem<String> parent) {
TreeItem<String> item = new TreeItem<>(title);
item.setExpanded(true);
parent.getChildren().add(item);
return item;
}
TreeItems
在makeBranch
方法中创建,并添加到提供的parent
中。将
Tab
添加到Scene
时的外观如下:Blank TreeView
最佳答案
我相信我知道了。我忽略了设置TreeView
的根。新增:
resultTree.setRoot(root);
将根添加到树中,并使树可见。否则,我将返回一个空的
TreeView
。关于java - JavaFX TreeView为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40558639/