JAVAFX:阻止用户打开新窗口,直到他关闭第一个窗口

标签 java javafx controller fxml multiple-instances

我有两个独立的 Controller 和 FXML 文件。在第一个 Controller 中,您控制主窗口,在这里您可以按按钮并打开一个新窗口。

我想阻止用户打开任意数量的窗口。他应该只能打开一扇 window 并再次关闭它,然后才能打开下一扇 window 。

这是当您按下我正在谈论的按钮时执行的代码。它完美地打开了我的窗口,但我仍然可以在后台打开更多窗口,这不是我想要的。

希望您能给我一些帮助。提前致谢

   @FXML
   private void addSongsToSelectedPlaylist() throws IOException {


    if (tempPlaylistName!="Library"){

        // WILL LOAD THE STAGE OF THE POPUP WINDOW AND PROVIDE THE CONSTRUCTOR THE PLAYLIST NAME
      //  AddSongController addSongController = new AddSongController();

     //   addSongController.enterSelectionMode(tempPlaylistName);


        try {
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("addSongToPlaylistPopUp.fxml"));
            Parent root1 = (Parent) fxmlLoader.load();
            Stage stage = new Stage();
            stage.initModality(Modality.WINDOW_MODAL);
            stage.getIcons().add(new Image("sample/images/Music-icon.png"));
            stage.setResizable(false);
            stage.setAlwaysOnTop(true);

            stage.setTitle("Add songs to your playlist");
            stage.setScene(new Scene(root1));
            stage.showAndWait();

        } catch (IOException e){

            System.out.println(e.getCause());

        }

最佳答案

您可以将模式设置为APPLICATION_MODAL,以防止应用程序在第一个窗口关闭之前打开任何新窗口:

   stage.initModality(Modality.APPLICATION_MODAL);

关于JAVAFX:阻止用户打开新窗口,直到他关闭第一个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54225143/

相关文章:

java - 在 Spring MVC 中将 Bean 放入 Controller 时出现问题

java - 在按钮中添加总计

java - 在 java 和 eclipse 中开发 swing 应用程序的最佳资源

java - 对多个项目使用公共(public)源文件夹,并避免绝对路径

java - 如何确定用户是否在特定 JavaFX 节点外单击?

gradle - gradle/JavaFX 项目中模块 javafx.base 的两个版本

android - gluon Mobile LocalNotificationsServices.class 不工作

java - 我无法将 bean 引用给客户端拦截器

java - 在 kill 时优雅地退出 Clojure core.async go 循环

java - 修复 Checkmarx XSS 漏洞