【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);
ちなみにメインメソッドはなくても起動できるようです。










ディスカッション
コメント一覧
参考にさせていただきました
ありがとう
どいたまー