プログラミング学習日記

プログラミング学習時のメモ帳。

javafx シーン遷移 画面遷移

間違っている場所あったら優しく教えてね

ゲームを作る上ではタイトルシーンとゲームシーン, リザルトシーンなどの画面遷移が必要となってくる.
今回はjavafxで画面遷移を実装する.

概略

簡単に説明するとStageにセットするシーンを変更すれば良い .

Stage currentStage; 
public void ChangeScene ( Scene nextScene){
    currentStage.setScene( nextScene );
}

コード

実際にシーンの変化は生じているが分かりにくいです.
ボタンを押したらシーンが変わっているのですが伝わりにくい.

package test;

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

/**
 * Test4 シーン遷移
 */
public class Test4 extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    Scene sc1, sc2;

    static Stage currentStage;

    @Override
    public void start(Stage primaryStage) throws Exception {

        currentStage = primaryStage;

        Button b = new Button("シーン遷移");
        b.setOnMouseClicked(e -> {
            System.out.println("clicked");
            ChangeScene();
        });

        BorderPane bp = new BorderPane();
        bp.setCenter(b);
        sc1 = new Scene(bp);

        Label lb = new Label("hello");
        BorderPane bp2 = new BorderPane();
        bp2.setCenter(lb);
        sc2 = new Scene(bp2);

        primaryStage.setScene(sc1);
        currentStage.setHeight(400);
        currentStage.setWidth(400);
        currentStage.show();

    }

    public void ChangeScene() {
        if (currentStage.getScene() == sc1) {
            currentStage.setScene(sc2);
        } else {
            currentStage.setScene(sc1);
        }
    }
}

ブログを見ていただきありがとうございました