【JavaFX】ウィンドウ表示
本稿はJavaFXでウィンドウ表示する方法を紹介します。
ウィンドウ表示とよく利用しそうなメソッド
JavaFXアプリケーションでウィンドウを表示するには、まず対象クラスにApplicationクラスを継承させ、オーバーライドしたstartメソッドの引数である、Stageオブジェクトのshowメソッドを呼び出します。
ついでに、ゲーム制作で使用したくなるであろう機能の、ウィンドウサイズ、タイトル指定、リサイズ無効化、ウィンドウアイコン、フルスクリーンモードなどの設定方法も見ておきましょう。
今回使用したウィンドウアイコンはこれ。
画像はソースと同じ個所に配置しました。Eclipseの場合はプロジェクトルートに配置してください。
それではサンプルをご覧ください。
import java.io.File; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.stage.Stage; public class Test extends Application{ public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { //シーンにはめ込むパネル Group p = new Group(); //シーンをセット(ウィンドウサイズに影響を与えます) Scene scene = new Scene(p, 400, 300); primaryStage.setScene(scene); //ウィンドウタイトル primaryStage.setTitle("FXTest"); //ウィンドウサイズ変更の無効化 primaryStage.setResizable(false); //アイコンの設定 Image img = new Image(new File("./test.png").toURI().toString()); primaryStage.getIcons().add(img); //フルスクリーンモードのオン、オフ //フルスクリーンオンの時はescキーで解除できます primaryStage.setFullScreen(false); //ウィンドウの表示 primaryStage.show(); } }
JavaFXでのウィンドウクラスはStageクラスに当たります。JavaFXアプリケーションでは、すでにこのオブジェクトは作成されており、自分でインスタンス化する必要はありません。SwingでいうところのJFrameにですね。
このStageオブジェクトに対してSceneというパネルを挿入し、このシーン上にさらにParentクラスを継承したオブジェクトを挿入します。今回はGroupを挿入しました。
Groupに複数のNodeオブジェクトを挿入することで特定の図形を表示したりできます。
ウィンドウタイトルの指定
StageクラスのsetTitle(タイトルにしたい文字列)メソッドを使用します。
primaryStage.setTitle("FXTest");
ウィンドウサイズの指定
StageクラスのサイズはSceneオブジェクトのサイズに合わせられます。
Scene scene = new Scene(p, 400, 300);
ウィンドウサイズ変更無効化
StageクラスのsetResizable(有効か無効か)メソッドを利用します。
primaryStage.setResizable(false);
アイコンの指定
StageクラスのgetIconsメソッドでリストを取得し、Imageオブジェクトを追加するだけで設定できます。
Imageクラスのコンストラクタには、URI形式のパス文字列を指定します。
Image img = new Image(new File("./test.png").toURI().toString()); primaryStage.getIcons().add(img);
フルスクリーンの指定
StageクラスのsetFullScreen(有効か無効か)メソッドで指定できます。
途中でフルスクリーンの無効化をしたい場合はESCキーで解除できるようです。
primaryStage.setFullScreen(false);
ちなみにメインメソッドはなくても起動できるようです。
ディスカッション
コメント一覧
参考にさせていただきました
ありがとう
どいたまー