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); } } }