首页 > 解决方案 > Java FXML 将内容动态加载到多个不同的选项卡上

问题描述

我有多个列表,我想循环并在各自的选项卡中将它们的所有项目作为按钮返回,每个都有一个动作。

我尝试了以下方法:

@FXML
private Tab aTab;

然后按下按钮:

StackPane tab = new StackPane();
    tab.setStyle("-fx-background-color: Green");
    Label text = new Label("titleLabel");
    text.setStyle("-fx-font-size: 25px;");
    tab.getChildren().add(text);

    aTab.setContent(tab);

直接的问题是我得到了异常

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException...
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
... 52 more
Caused by: java.lang.NullPointerException 
at (the method I'm calling aTab.setContent(tab) in
...

更隐蔽的问题是,随着标签数量的增加,我的代码会变得越来越臃肿。

理想情况下,有一种方法可以使用通用选项卡 xml 文件在每个选项卡上显示内容,但我无法将这样的东西放在一起。

如何才能做到这一点?这可以做到吗?

标签: javajavafxtabsfxmlfxmlloader

解决方案


推荐阅读