JavaFX Treeview 不显示任何项目 [英] JavaFX Treeview shows no items

查看:69
本文介绍了JavaFX Treeview 不显示任何项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在我的 JavaFX 应用程序中实现一个 TreeView.但遗憾的是没有显示任何项目,但我找不到问题.我搜索了一些例子,并喜欢他们.

I try to implement an TreeView in my JavaFX App. But unfortenatly no items are showed, but i cannot find an issue. I search for some example and did it like them.

我在 SceneBuilder 中将一个 TreeView 控件放入我的 FXML 文件中,并选择了生成的 ControllerClass,并从该类中选择了 Treeview 字段作为 SceneBuilder 中 TreeView 控件的 ID.

I put an TreeView Control to my FXML File in SceneBuilder and selected the ControllerClass which was generated and slected the Treeview field from this class as an id for the TreeView Control in SceneBuilder.

这是我的控制器代码:

public class MainSceneController implements Initializable {

@FXML
TreeView<String> treeview;

@FXML
Button btn;

@Override
public void initialize(URL url, ResourceBundle rb) {
    TreeItem<String> root = new TreeItem<>("root");


    for(int i = 0; i < 10; i++) {
        TreeItem<String> child = new TreeItem<>("Children " + i);

    root.getChildren().add(child);
    }


    root.setExpanded(true);

    this.treeview = new TreeView<>(root);

    treeview.getSelectionModel().setSelectionMode(SelectionMode.SINGLE);
}

@FXML
public void addTreeViewItem() {

}

@FXML
private void showAddStreamDialog() {
    try {

        Parent p;

        p = FXMLLoader.load(getClass().getResource("AddStream.fxml"));

        Scene s = new Scene(p);

        Stage stage = new Stage();

        stage.initModality(Modality.APPLICATION_MODAL);
        stage.setScene(s);
        stage.show();

    } catch (IOException ex) {
        Logger.getLogger(MainSceneController.class.getName()).log(Level.SEVERE, null, ex);
    }
}

}

知道有什么问题吗?

推荐答案

您不应将新实例分配给 this.treeview,因为该字段已被 FXLoader 初始化.因此,您只需设置根项 this.treeview.setRoot(root);

You shouldn't assign new instance to the this.treeview because this field was already initialized by the FXLoader. So instead of this.treeview = new TreeView<>(root); you need simply to set the root item this.treeview.setRoot(root);

这篇关于JavaFX Treeview 不显示任何项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆