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