我是Java FX的新手并试图建立一个简单的#34;应用程序由标题按钮栏和"内容区域组成"下面。 我曾经做过很多这样的事情:
带有Borderpane的MainWindow.fxml:顶部区域中的MenuBar
还有一个中间区域fx:id: content
的窗格。
内容()
创建obj内容的一个控制器:
@FXML
private Pane content;
并切换内容:
content.getChildren().clear();
content.getChildren().add(FXMLLoader.load(getClass().getResource("Navi.fxml")));`
初始化父级和场景的主文件:
Parent root = FXMLLoader.load(getClass().getResource("MainWindow.fxml"));
Stage Window = primaryStage;
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
Window.setTitle("ICIS - In Car Interactive System");
Window.setScene(scene);
Window.show();`
到目前为止一切正常!
但现在我想应用SplitPane
并进行内容更改"在Split Pane的每一面(TwoWindows.fxml):所以我扩展了
带obj的控制器对于拆分窗格的每个窗格,将fx:id分配给该窗格,并希望控制它们与之前的示例类似。
@FXML
private Pane SecondWindow1;
SecondWindow1.getChildren().add(FXMLLoader.load(getClass().getResource("Navi.fxml")));
好吧,在编译期间一切都很好,但是在运行时我得到了Null错误异常,因此我认为控制器不知道SecondWindow1
(SlitPane的左半部分)。
我还假设,这是因为我在开始时只初始化MainWindow.fxml(包括内容区域),而不是包含SecondWindow1对象的TwoWindows.fxml(SplitPane)。
我已经尝试了几个小时才能解决它,但显然我正在忽视某事。有人知道如何解决这个问题吗?每个FXML文件需要一个控制器吗?