我刚接触JavaFX,并且尝试创建一个TreeView添加到Tab。但是,当我将TreeView添加到Tab时,它为空。下面是创建,填充和添加TreeViewTab的代码。

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;
}


TreeItemsmakeBranch方法中创建,并添加到提供的parent中。

Tab添加到Scene时的外观如下:

Blank TreeView

最佳答案

我相信我知道了。我忽略了设置TreeView的根。新增:

resultTree.setRoot(root);


将根添加到树中,并使树可见。否则,我将返回一个空的TreeView

关于java - JavaFX TreeView为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40558639/

10-14 04:25