JavaFX TreeView 为空

标签 java javafx treeview

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

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

以下是将选项卡添加到场景时的样子:

Blank TreeView

最佳答案

我相信我已经明白了。我忽略了设置 TreeView 的根。添加:

resultTree.setRoot(root);

将根添加到树中,并使树可见。如果没有它,我将返回一个空的 TreeView

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

相关文章:

JavaFX Tableview 持有两种对象

python - Tkinter Treeview 列排序

java - 学习java网络的书籍推荐

java - 在 if 语句中读取字符串时遇到问题

java - 当按下键盘上的某个键时,如何更改按钮的外观。 JavaFX

java - 将 ComboBox 添加到 TableColumn 并绑定(bind)到行数据

javascript - 在 Javascript 中控制 ASP.Net TreeView

c++ - 将 TreeView 控件滚动到顶部

java - 如何让我的 JTable 在按钮单击时出现?

java - 停止从 Java 代码开始的 JMeter 非 GUI 测试