JavaFX 切换窗口

JavaFX 是一个用于创建图形用户界面的框架,可以创建富有交互性的界面。在实际开发中,经常需要在不同的界面之间进行切换。本文将介绍如何在 JavaFX 中实现切换窗口的功能。

状态图

stateDiagram
    [*] --> Main
    Main --> Window2: switchWindow()
    Window2 --> Main: switchWindow()

上面是一个简单的状态图,表示在主窗口和第二个窗口之间进行切换的状态转换。

代码示例

首先,我们需要创建一个主窗口和一个第二个窗口的类。在主窗口类中,我们可以添加一个方法来切换到第二个窗口。

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        Button switchButton = new Button("Switch Window");
        switchButton.setOnAction(e -> {
            Window2 window2 = new Window2();
            window2.show();
            primaryStage.hide();
        });

        StackPane root = new StackPane();
        root.getChildren().add(switchButton);

        Scene scene = new Scene(root, 300, 200);

        primaryStage.setTitle("Main Window");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

在上面的代码中,我们创建了一个按钮来切换到第二个窗口。点击按钮后,我们创建一个新的第二个窗口实例,显示该窗口,并隐藏主窗口。

第二个窗口的类如下:

public class Window2 extends Stage {

    public Window2() {
        Button switchBackButton = new Button("Switch Back");
        switchBackButton.setOnAction(e -> {
            close();
            Main main = new Main();
            main.start(new Stage());
        });

        StackPane root = new StackPane();
        root.getChildren().add(switchBackButton);

        Scene scene = new Scene(root, 300, 200);

        setTitle("Window 2");
        setScene(scene);
    }
}

在第二个窗口中,我们也创建了一个按钮来切换回主窗口。点击按钮后,关闭第二个窗口实例,并重新创建并显示主窗口实例。

序列图

sequenceDiagram
    participant Main
    participant Window2

    Main ->> Window2: switchWindow()
    Window2 ->> Main: switchBack()

上面是一个简单的序列图,表示在主窗口和第二个窗口之间进行切换的交互过程。

通过以上代码示例和图示,我们可以实现在 JavaFX 中切换窗口的功能。这种方式可以帮助我们更好地组织界面结构,提高用户体验。希望本文能够帮助到正在学习 JavaFX 的开发者们。