イントロダクション
前回は、GLUONプラグイン(for Eclipse)をインストールしました。とりあえずは画面が表示されたので次のステップです。
まずは画面の遷移を行いたい
ここのサイト(GLUONサイト)で調べて、Eclipseからアプリを動かしながら確認しました。
<クラスの構成>
「src/main/java」にメインになるクラスがありました。自分の作成するアプリの名前が「JankenGame」なので「JankenGame.java」と言うファイルが生成されていました。
中のソースはこんな感じです。
<JankenGame.java>
@Override public void init() { addViewFactory(HOME_VIEW, BasicView::new); } @Override public void postInit(Scene scene) { Swatch.BLUE.assignTo(scene); ((Stage) scene.getWindow()).getIcons().add(new Image(JankenGame.class.getResourceAsStream("/icon.png"))); }
init()
で表示する画面(View)を登録、今回は1つだけ登録します。
実装しやすい方法で画面遷移などを実装できるので、複数パターンの画面遷移方法がある様です。
今回の実装方法は、単純に。。。
ボタンを押すと画面が変わる方法です。
初期表示される「BasicView」にボタンを登録しておき、ボタンが謳歌されたら「TestingView」を開くと言う様な形で実装しました。
JankenGameクラスから表示されたBasicView画面のコードは以下になります。
public BasicView() {
Label label = new Label("Hello JavaFX World!");
Button button = new Button("Change Text!");
button.setGraphic(new Icon(MaterialDesignIcon.LANGUAGE));
button.setOnAction(e -> {
setCenter(new TestingView());
});
VBox controls = new VBox(15.0, label, button);
controls.setAlignment(Pos.CENTER);
setCenter(controls);
}
// 画面の上部分にあるバーは不要なのでコメントアウト
@Override
protected void updateAppBar(AppBar appBar) {
// appBar.setNavIcon(MaterialDesignIcon.MENU.button(e -> System.out.println("Menu")));
// appBar.setTitleText("Basic View");
// appBar.getActionItems().add(MaterialDesignIcon.SEARCH.button(e -> System.out.println("Search")));
}
赤文字で記載した部分が画面の切り替え部分です。
そして、TestingViewクラスは単純にLabelを表示しているだけです。
こんな感じで画面の遷移ができました。
<ポイント>
- 画面を意味する「View」クラスを継承して自分の作成したい画面を作成する
- ViewクラスはGroupクラスなどと同じ様にLayerとして使用できる
- Viewクラスを継承したクラスを量産して画面をあちらこちらと切り替えができる
動かしてみたところ、こんな風に思いました。
でわでわ。。。
[rakuten ids="onkyodirect:10003046"]