如何在javafx中重置效果?

如何在javafx中重置效果?,javafx,Javafx,我用登录名和密码启动了主窗口(classmain)和模式窗口(classLogin)。主动模式窗口时,主阶段= root.setEffect(new GaussianBlur()); 如果用户有效,则关闭模式窗口。如何在主阶段重置效果 root.setEffect(new GaussianBlur());? 谢谢! 主要类别: 公共类主扩展应用程序{ Login loginWindow = new Login(); public static Stage windowMain; @Ov

我用登录名和密码启动了主窗口(class
main
)和模式窗口(class
Login
)。主动模式窗口时,主阶段=

root.setEffect(new GaussianBlur()); 
如果用户有效,则关闭模式窗口。如何在主阶段重置效果

root.setEffect(new GaussianBlur());?
谢谢! 主要类别:

公共类主扩展应用程序{

Login loginWindow = new Login();

public static Stage windowMain;

@Override
public void start(Stage primaryStage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("/views/main.fxml"));
    Scene scene = new Scene(root);
    scene.getStylesheets().add(this.getClass().getResource("/style/main.css").toExternalForm());
    primaryStage.setScene(scene);
    primaryStage.show();
    windowMain = primaryStage;
    root.setEffect(new GaussianBlur());
    loginWindow.display();
}

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

登录类别:

公共类登录{

public void display() throws IOException {
    Stage window = new Stage();
    window.initModality(Modality.APPLICATION_MODAL);
    window.initStyle(StageStyle.UNDECORATED);
    auth.setTranslateY(40);
    auth.setTranslateX(100);
    auth.getStyleClass().add("auth");
    TextField username = new TextField();
    username.setTranslateY(70);
    username.setTranslateX(75);
    PasswordField password = new PasswordField();
    password.setTranslateY(100);
    password.setTranslateX(75);
    Button loginBtn = new Button();
    loginBtn.getStyleClass().add("loginBtn");
    loginBtn.setStyle("-fx-cursor: hand");
    loginBtn.setTranslateX(115);
    loginBtn.setTranslateY(155);

    loginBtn.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            if (username.getText().equals("admin") && password.getText().equals("admin")) {
                window.close();
            } else {
                System.out.println("Error");
            }
        }
    });

    Pane layout = new Pane();
    layout.getChildren().addAll(username, password, loginBtn);
    Scene scene = new Scene(layout);
    layout.getStylesheets().add(this.getClass().getResource("/style/login.css").toExternalForm());

    username.setFocusTraversable(false);
    password.setFocusTraversable(false);

    window.setScene(scene);
    window.setAlwaysOnTop(true);
    window.showAndWait();
}
public void display()引发IOException{
阶段窗口=新阶段();
初始化模态(模态.APPLICATION_模态);
窗。初始样式(舞台样式。未装饰);
作者:setTranslateY(40);
验证setTranslateX(100);
auth.getStyleClass().add(“auth”);
TextField username=新建TextField();
username.setTranslateY(70);
username.setTranslateX(75);
PasswordField password=新的PasswordField();
密码:setTranslateY(100);
密码:setTranslateX(75);
按钮登录tn=新按钮();
loginBtn.getStyleClass().add(“loginBtn”);
loginBtn.setStyle(“-fx光标:手”);
loginBtn.setTranslateX(115);
loginBtn.setTranslateY(155);
loginBtn.setOnAction(新的EventHandler(){
@凌驾
公共无效句柄(ActionEvent事件){
if(username.getText().equals(“admin”)和&password.getText().equals(“admin”)){
window.close();
}否则{
System.out.println(“错误”);
}
}
});
窗格布局=新建窗格();
layout.getChildren().addAll(用户名、密码、登录名);
场景=新场景(布局);
layout.getStylesheets().add(this.getClass().getResource(“/style/login.css”).toExternalForm());
username.setFocusTraversable(false);
密码。setFocusTraversable(false);
window.setScene(场景);
window.setAlwaysOnTop(真);
show和wait();
}
}

这个

应该有用。由于您在登录窗口中使用了
showAndWait()
,因此只需

@Override
public void start(Stage primaryStage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("/views/main.fxml"));
    Scene scene = new Scene(root);
    scene.getStylesheets().add(this.getClass().getResource("/style/main.css").toExternalForm());
    primaryStage.setScene(scene);
    primaryStage.show();
    windowMain = primaryStage;
    root.setEffect(new GaussianBlur());
    loginWindow.display();
    root.setEffect(null);
}

非常感谢。但我怎样才能从主类中获取场景呢?请不要在注释中放置代码,而是编辑问题并在问题中添加格式化代码。James_D,非常感谢!!
@Override
public void start(Stage primaryStage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("/views/main.fxml"));
    Scene scene = new Scene(root);
    scene.getStylesheets().add(this.getClass().getResource("/style/main.css").toExternalForm());
    primaryStage.setScene(scene);
    primaryStage.show();
    windowMain = primaryStage;
    root.setEffect(new GaussianBlur());
    loginWindow.display();
    root.setEffect(null);
}