0
点赞
收藏
分享

微信扫一扫

javafx怎么返回上一个窗口

JavaFX如何返回上一个窗口

在JavaFX中,要实现返回上一个窗口的功能,可以使用Stage类和Scene类来管理窗口之间的切换。下面将通过一个示例来演示如何实现这一功能。

首先,我们创建两个简单的窗口:一个是主窗口,另一个是次要窗口。主窗口上有一个按钮,点击按钮后会打开次要窗口。次要窗口上有一个返回按钮,点击返回按钮后会返回主窗口。

创建主窗口

首先,我们需要创建一个JavaFX应用程序的入口类,并在其中创建主窗口。下面是一个简单的示例代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class MainApp extends Application {

private Stage primaryStage;

@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
primaryStage.setTitle(主窗口);

Button openButton = new Button(打开次要窗口);
openButton.setOnAction(e -> openSecondaryWindow());

VBox root = new VBox(openButton);
Scene scene = new Scene(root, 300, 200);
primaryStage.setScene(scene);
primaryStage.show();
}

private void openSecondaryWindow() {
SecondaryWindow secondaryWindow = new SecondaryWindow(this);
secondaryWindow.show();
}

public Stage getPrimaryStage() {
return primaryStage;
}

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

在上面的代码中,我们创建了一个名为MainApp的类,它继承自Application类。在start方法中,我们创建了一个主窗口,并添加了一个按钮。当点击按钮时,会调用openSecondaryWindow方法打开次要窗口。

创建次要窗口

接下来,我们需要创建次要窗口。下面是一个简单的示例代码:

import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;

public class SecondaryWindow {

private Stage primaryStage;
private Stage secondaryStage;

public SecondaryWindow(MainApp mainApp) {
this.primaryStage = mainApp.getPrimaryStage();

secondaryStage = new Stage();
secondaryStage.initModality(Modality.WINDOW_MODAL);
secondaryStage.initOwner(primaryStage);
secondaryStage.setTitle(次要窗口);

Button backButton = new Button(返回);
backButton.setOnAction(e -> closeSecondaryWindow());

VBox root = new VBox(backButton);
Scene scene = new Scene(root, 300, 200);
secondaryStage.setScene(scene);
}

public void show() {
secondaryStage.show();
}

private void closeSecondaryWindow() {
secondaryStage.close();
}
}

在上面的代码中,我们创建了一个名为SecondaryWindow的类。在构造函数中,我们获取了主窗口的Stage对象,并使用Stage类的initModality方法将次要窗口设置为模态窗口,即在次要窗口关闭之前,无法与主窗口进行交互。然后,我们创建了一个返回按钮,并在按钮的点击事件处理程序中调用closeSecondaryWindow方法关闭次要窗口。

运行主程序

最后,我们需要运行主程序以查看结果。下面是一个简单的示例代码:

public class Main {

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

运行上面的代码后,会弹出一个主窗口。点击主窗口上的按钮,会打开一个次要窗口。在次要窗口中点击返回按钮,次要窗口会关闭,返回到主窗口。

总结

通过上面的示例,我们可以看到,要实现返回上一个窗口的功能,可以通过创建多个Stage对象来管理不同的窗口,并使用Stage类的方法来实现窗口之间的切换。在次要窗口中,可以通过获取主窗口的Stage对象的方式来关闭次要窗口并返回主窗口。

希望以上解答对你有帮助,如果有任何问题,请随时提问。

举报

相关推荐

0 条评论