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

在JavaFX/fxml中打开了新的窗口,但我不希望它打开一个新的场景

颛孙智勇
2023-03-14

当我运行我的代码时,我打开了一个有3个按钮可按的窗口,我想要的是,当我按下打开新窗口的其中一个按钮时,我会“超过”上一个窗口,而不是打开一个新窗口,导致我有2个打开的窗口,而不是1个。下面是我的Guicontroller:

import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

import java.io.IOException;

public class GUIController {



       public void patientVindue(ActionEvent actionEvent) throws IOException {
           FXMLLoader loader = new FXMLLoader(getClass().getResource("/patientGUI.fxml"));
           GridPane gridPane = loader.load();
           Scene scene = new Scene(gridPane);
           Stage stage = new Stage();
           stage.setScene(scene);
           stage.show();
       }

       public void lægeVindue(ActionEvent actionEvent) throws IOException {
           FXMLLoader loader = new FXMLLoader(getClass().getResource("/lægeGUI.fxml"));
           GridPane gridPane = loader.load();
           Scene scene = new Scene(gridPane);
           Stage stage = new Stage();
           stage.setScene(scene);
           stage.show();
       }

       public void sundhedsprofessionelVindue(ActionEvent actionEvent) throws IOException {
           FXMLLoader loader = new FXMLLoader(getClass().getResource("/sundhedsprofessionelGUI.fxml"));
           GridPane gridPane = loader.load();
           Scene scene = new Scene(gridPane);
           Stage stage = new Stage();
           stage.setScene(scene);
           stage.show();
       }

       public tilbageVindue(ActionEvent actionEvent) throws IOException {
           FXMLLoader loader = new FXMLLoader(getClass().getResource("/gui.fxml"));
           GridPane gridPane = loader.load();
           Scene scene = new Scene(gridPane);
           Stage stage = new Stage();
           stage.setScene(scene);
           stage.show();
       }
    }




--添加更多信息。这是我使用的另一个类:

public class GUI extends Application {

    @Override
    public void start(final Stage stage) throws Exception {

        FXMLLoader loader = new FXMLLoader(getClass().getResource("/gui.fxml"));
        GridPane gridPane = loader.load();
        Scene scene = new Scene(gridPane);
        stage.setScene(scene);
        stage.show();


    }
}

共有1个答案

吕新
2023-03-14

你必须为那个窗口制作新的舞台,我建议你把舞台制作成静态的,然后把那个场景传送到那个舞台

 类似资料:
  • 查看这段代码,它们展示了一种在登录后显示新窗口的方法。当用户名和密码是正确的,它打开新的对话框。我想要一个按钮点击打开新的对话框,而不检查用户名和密码。

  • 我有A. fxml和B. fxml。运行Java应用程序覆盖启动方法。我想每40分钟循环(5次){打开新阶段B. fxml并等待stage.close,如果阶段关闭继续循环打开新阶段B fxml。循环五次。我尝试定时器timerment我不能。我尝试JavaFX服务我不能。我创建My线程扩展线程对象。这一次,我无法控制下一阶段的循环。当用于声明开始打开5阶段。但是我想循环等待当前阶段关闭,然后进入

  • 我尝试了各种方法来打开在.js文件中导入的.ftl文件中的新窗口中的链接,但都不成功。 下面是.js中的代码

  • 问题内容: 当用户单击它时,如何在新窗口中将其设置为一定的宽度和高度?在firefox中,当前代码只会打开一个新标签页(而不是一个新窗口) 问题答案: 要在包含尺寸和所有内容的新窗口中打开,您将需要调用JavaScript函数,因为target =“ _ blank”不允许您调整尺寸。一个例子是: 希望这对您有所帮助。

  • 我需要这段java代码的帮助。我有三个场景登录场景,管理场景,和玩家场景。当我运行程序并输入用户和密码时,第二个应该打开。现在的问题是,第二个场景没有打开。它甚至连接到数据库,但第二个场景没有打开。我已经检查了代码,我看不出有什么问题。能不能请一些帮帮我,发生了什么事。

  • 编辑4: 编辑2 上面的代码为父窗口或子窗口提供了相同的标题。