JavaFXのプログラムの基本的な書き方(構造)をまとめておきます。
サンプルコード
JavaFXの基本構造は下記の通りです。
public class xxx extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage stage) throws Exception {
primaryStage.show();
}
}
上から順に説明していきます。
Applicationクラス
JavaFXにおいては、
javafx.applicationパッケージにあるApplicationクラスを継承する必要があります。
その中で、いつものmainメソッドと、Applicationクラスのstartメソッドが呼ばれます。
launchメソッド
JavaFXアプリケーションを起動するためのメソッドです。
startメソッド
アプリケーションを開始する際の処理を記載します。
javafx.stageパッケージのStageクラスのインスタンスが引数として渡されます。
Stageクラス
最上位のJavaFXコンテナです。
このStageの上でアプリケーションを組み立てていきます。
「枠」のようなものです。
showメソッド
ウィンドウに表示を行うメソッドです。
実装例
実装例を交えつつさらに深掘りしていきます。
ソースコードは下記の通りです。
package javafx.test;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application{
public static void main(String[] args){
launch(args);
}
@Override
public void start(Stage stage) throws Exception{
Label label = new Label("Hello JavaFX!");
BorderPane pane = new BorderPane();
pane.setCenter(label);
Scene scene = new Scene(pane,320,240);
stage.setScene(scene);
stage.show();
}
}
Labelクラス
ラベルを表示するためのクラスです。
引数としてラベル文字列を渡すことができます。
これはイメージしやすいと思います。
BorderPaneクラス
部品はPaneというところに配置していきます。
Paneには複数種類があり、その中の1つがBorderPaneです。
レイアウトを決めるためのクラスです。
Sceneクラス
Stageが枠だとしたら、Sceneは台紙のようなものです。
このScene上にPaneをのせます。
階層の整理
色々でてきて訳がわからなくなりそうですが、
階層構造としては下記です。
Stage>Scene>Pane>部品
これを頭にイメージしてソースコードを読むとだいぶ整理できると思います。
まとめ
始めは構造がわかりにくかったですが、わかってしまえば簡単です。
アドバイス等あればお願いします。