从控制器加载不同的 FXML 文件
Loading different FXML files from a controller
我深表歉意,因为我知道这个问题本质上有点宽泛。我想要实现的是能够在满足特定条件时加载不同的 FXML 文件(位于不同的包中),例如按下按钮或满足特定条件时。到目前为止,我已经成功地在按下按钮时加载了一个文件。
@FXML
private AnchorPane rootPane;
@FXML
private Button btn;
@FXML
private void loadLoginWindow(javafx.event.ActionEvent event) throws IOException {
AnchorPane pane = FXMLLoader.load(getClass().getResource("login/MainWindow.fxml"));
rootPane.getChildren().setAll(pane);
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
它工作正常,但只有一个按钮和一个处理程序,一旦添加另一个它就停止工作,似乎当时只有一个可以工作。很明显我遗漏了很多重要信息,但我看过的每个教程都没有解决这一点,因为它们甚至没有到达那里(它们都围绕一个文件,或者它们依赖于隐藏和显示来自同一文件的窗格)
有没有人有好的教程或综合指南来做这类事情?
提前致谢。
FXML 文件中的控制器 link 可能不正确。即使文件位置可能不存在,应用程序仍会构建。
<AnchorPane id="AnchorPane" fx:controller="main.MainController">
fx:controller中的路径需要正确。
干杯!
我深表歉意,因为我知道这个问题本质上有点宽泛。我想要实现的是能够在满足特定条件时加载不同的 FXML 文件(位于不同的包中),例如按下按钮或满足特定条件时。到目前为止,我已经成功地在按下按钮时加载了一个文件。
@FXML
private AnchorPane rootPane;
@FXML
private Button btn;
@FXML
private void loadLoginWindow(javafx.event.ActionEvent event) throws IOException {
AnchorPane pane = FXMLLoader.load(getClass().getResource("login/MainWindow.fxml"));
rootPane.getChildren().setAll(pane);
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
它工作正常,但只有一个按钮和一个处理程序,一旦添加另一个它就停止工作,似乎当时只有一个可以工作。很明显我遗漏了很多重要信息,但我看过的每个教程都没有解决这一点,因为它们甚至没有到达那里(它们都围绕一个文件,或者它们依赖于隐藏和显示来自同一文件的窗格)
有没有人有好的教程或综合指南来做这类事情?
提前致谢。
FXML 文件中的控制器 link 可能不正确。即使文件位置可能不存在,应用程序仍会构建。
<AnchorPane id="AnchorPane" fx:controller="main.MainController">
fx:controller中的路径需要正确。
干杯!