我是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
。
以下是将选项卡
添加到场景
时的样子:
最佳答案
我相信我已经明白了。我忽略了设置 TreeView 的根。添加:
resultTree.setRoot(root);
将根添加到树中,并使树可见。如果没有它,我将返回一个空的 TreeView
。
关于JavaFX TreeView 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40558639/