0

所以这是我遇到的问题:我有 3 个按钮,当我按下 3 个按钮之一时,将显示新场景。然而,我似乎无法弄清楚如何根据按下的按钮使不同的窗格显示为可见。执行此操作的最佳方法是什么?如何使用来自不同场景控制器的 ID 来更改主场景按钮侦听器中窗格的属性?

当前在我的主控制器上,当每个按钮被释放时,下面的动作监听器执行并显示 secondscreen.fxml。secondscreen.fxml 有 2 个不同的窗格,具体取决于按下哪个按钮,我需要将 2 个痛苦中的 1 个设置为可见。

@FXML
 public void handleButtonAction(MouseEvent event) {
    Parent root;
    try {
        root = FXMLLoader.load(getClass().getResource("secondscreen.fxml"));
        Stage stage = new Stage();
        stage.setTitle("title");
        stage.setScene(new Scene(root));
        stage.show();

        ((Node)(event.getSource())).getScene().getWindow();

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

1 回答 1

0

加载视图后,您可以访问其控制器。

请记住,您的控制器必须分配给您的 fxml 文件fx:controller="your.package.SecondScreenController.java"

FXMLLoader loader = new FXMLLoader.load(getClass().getResource("secondscreen.fxml"));
// load view
Parent root = loader.load();
// after view is loaded, access its controller
SecondScreenController controller = (SecondScreenController) loader.getController();
// modify view using methods on your controller
controller.setTabIndex(0)

Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
于 2016-03-08T10:12:09.597 回答