Javafx 关闭另一个屏幕后更改阿索帕效果

Javafx 关闭另一个屏幕后更改阿索帕效果,javafx,Javafx,我有一个名为Principale.fxml的fxml文件,其中包含一个buton。 当我点击它时,另一个阶段被打开,一个BoxBlur效果被添加到principale.fxml中的AnchorPane中。 所以我想要的是当我关闭第二阶段时,将这个主播的效果设为空 这是我的密码: principale.fxml info.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {

我有一个名为Principale.fxml的fxml文件,其中包含一个buton。 当我点击它时,另一个阶段被打开,一个BoxBlur效果被添加到principale.fxml中的AnchorPane中。 所以我想要的是当我关闭第二阶段时,将这个主播的效果设为空 这是我的密码:

principale.fxml

 info.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
                @Override
                    public void handle(MouseEvent event) {
                        Parent home_page_p = FXMLLoader.load(getClass().getResource("/View/information.fxml"));

                        Scene home_page_s = new Scene (home_page_p);
                        javafx.scene.effect.BoxBlur bxb = new BoxBlur();
                       ancr.setEffect(bxb);

                        Stage stage = new Stage();
                        stage.initStyle(StageStyle.UNDECORATED);
                        stage.setScene(home_page_s);

                        stage.show();


                } catch (IOException ex) {
                    Logger.getLogger(PrincipaleController.class.getName()).log(Level.SEVERE, null, ex);
                }


因此,当我关闭信息窗口时,我想将principale.fxml effect设置为null,我应该向closeapp方法添加什么?

您的代码存在多个问题。你不应该打字

Controller ctl = new Controller();
而是使用

FXMLLoader loader = FXMLLoader.load(getClass().getResource("/View/information.fxml"));
Parent home_page_p = loader.load();
Controller ctl = loader.getController();
稍后使用此选项创建新阶段:

Stage stage = new Stage();
stage.initStyle(StageStyle.UNDECORATED);
ctl.Glisse(home_page_p, stage, home_page_s);
stage.setScene(home_page_s);
// Adding a event handler to be fired on the event of stage being closed
stage.setOnCloseRequest((WindowEvent event) -> {
      // Perform some action when the stage is closed
      ancr.setEffect(null); // ancr is a reference to the anchorpane
}

注意:您不需要创建另一个
PrincipalController的实例
,因为上面所有的代码都写在
PrincipalController类中

不,我不知道怎么做我对javafxwell很陌生Controller只是我创建的一个类,它包含一些方法来移动未修饰的stageEach fxml文件必须有一个控制器来绑定字段和属性。请通过以下网址了解更多信息:(我知道,但是,我刚刚创建了这个类,我给它命名为controller,它包含名为glisse的方法来移动未装饰的窗口。你能编辑你的问题并添加一个来显示你的问题吗?如果没有完整的图片,我将无法更好地帮助你。请阅读有关MCVE的内容,但单击上面的链接。如果没有足够的代码,我无法ot建议。此外,你发布的图片并没有阐明任何关于控制器的信息。
Stage stage = new Stage();
stage.initStyle(StageStyle.UNDECORATED);
ctl.Glisse(home_page_p, stage, home_page_s);
stage.setScene(home_page_s);
// Adding a event handler to be fired on the event of stage being closed
stage.setOnCloseRequest((WindowEvent event) -> {
      // Perform some action when the stage is closed
      ancr.setEffect(null); // ancr is a reference to the anchorpane
}