无法调用“javafx.scene.control.ComboBox.getItems()”,因为“Controller.getMyBox()”的返回值为 null

2024-02-15

不知何故,我无法从另一个类向我的 ComboBox 变量添加项目,因为它总是说变量的值为 null 或其 getter 的返回值为 null。

我使用 Scene Builder 构建 Sample.fxml,使用控制器作为 Controller 类,从 User Interface 类启动整个内容

FXML

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.layout.BorderPane?>

<BorderPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller">
   <center>
      <ComboBox fx:id="myBox" prefWidth="150.0" BorderPane.alignment="CENTER" />
   </center>
</BorderPane>

控制器

public class Controller {
    @FXML
    private ComboBox<String> myBox;

    public ComboBox<String> getMyBox() {
        return myBox;
    }

    public void initialize() {
        ObservableList<String> defaultTicker = FXCollections.observableArrayList("Something");
        myBox.getItems().addAll(defaultTicker);
    }
}

用户界面

public class UserInterface extends Application {
    @Override
    public void start(Stage primaryStage) {
        try {
            FXMLLoader loader = new FXMLLoader(getClass().getResource("Sample.fxml"));
            Parent root = loader.load();
            Controller controller = new Controller();

            primaryStage.setTitle("Title");
            primaryStage.setScene(new Scene(root));
            primaryStage.show();

            List<String> addStuff = new ArrayList<String>();
            addStuff.add("a");
            addStuff.add("b");
            addStuff.add("c");
            controller.getMyBox().getItems().addAll(addStuff);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

运行后出现界面,里面只有“Something”选项。所以我猜它初始化得很好?启动后的界面 https://i.stack.imgur.com/B69zd.png

我做错了什么?到目前为止我似乎找不到任何解决方案。

提前致谢。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法调用“javafx.scene.control.ComboBox.getItems()”,因为“Controller.getMyBox()”的返回值为 null 的相关文章

随机推荐