当前位置: 首页 > 知识库问答 >
问题:

如何在javafx中重置效果?

郑衡
2023-03-14

我用登录名和密码启动了主窗口(classmain)和模式窗口(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();
}

}

共有1个答案

毋树
2023-03-14

effect的默认值为空,因此

root.setEffect(null);

应该管用。由于您在登录窗口中使用了show And等待(),所以您只需要

@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);
}
 类似资料:
  • 问题内容: 我正在尝试使用JavaFX中的WebView入门,但是当尝试打开W​​ebView时,我收到以下所示的错误,我该如何解决此问题? 问题答案: 尝试运行WebView时遇到任何错误时,请确保您的VM选项包含模块javafx.web。 虚拟机选项: 在IntelliJ中,您可以通过转到IDE右上方的“编辑配置”按钮来访问VM选项。

  • 如何在JavaFX中为< code>TextField设置占位符?我怎样才能不使用JavaScript来做这件事呢?

  • 我寻找了关于这个问题的解决方案&在Silverlight和JavaScript上找到了一些解决方案,但在JavaFX上没有找到。 关于这个问题: 我正在用JavaFX设计一个GUI,其中添加了两个按钮:ADD和REMOVE 我已经使用CSS为ADD按钮设置了样式,但它已经失去了悬停&onclick效果。为了更好地理解这个问题,我附上了几张图片 如果您查看此处的照片,您将看到当单击REMOVE按钮时

  • 我有2个控制器为2个fxml文件。在一个控制器中,我有一个函数,它打开一个文件选择器,并给出一个我称之为Model的类的路径。然后在另一个控制器上有一个函数在单击Draw按钮并运行程序后获取该路径。我有另一个按钮来重置程序。它将结果设置为null,但当打开另一个文件运行时,程序崩溃,因为路径为null。如何重置程序并使其使用从打开文件选择器中选择的新路径?

  • 问题内容: 我正在尝试使用以下代码设置按钮文本: 这是我的FXML: 但这行不通,我不明白为什么,还有其他人知道如何使用JavaFX设置按钮文本吗?>。>; 我觉得JavaFX不像Swing那样简单…但是无论如何,有人知道我在做什么错吗?另外,有没有人知道有什么资源可以学习FXML?我喜欢FXML而不是用Java进行编码,但是似乎没有太多的东西,我是否是世界上唯一喜欢FXML而不是JavaFX G

  • 我有一个外部显示器与我的mac连接,我想制作一个JavaFX应用程序,它在我的主显示器和外部显示器上都是全屏的。 我试过下面的代码,但它总是一次只给我一个全屏。 当第一个setFullScreen(true)被调用时,第一个阶段在我的主监视器中出现全屏。 当调用第二个setFullScreen(true)时,第一级失去其全屏,而第二级在外部监视器中出现全屏。 如何在两个监视器中同时将两个阶段设置为