では、JavaFXのアプリケーションはどうやって作るのか。その基本から見ていきましょう。「GUIの根本から違ってる」と脅したので、「どうやってプログラム作るんだ?」と不安に思ってる人もいるかもしれませんが、大丈夫。
アプリケーションの基本は、Javaの基本通り。「
mainメソッド」を実装したクラスを書いて、これを起動するというだけです。普通にJavaのクラスを書けば、JavaFXのアプリケーションは作れます。この点については、何ら変わりはありません。
ただし、JavaFXアプリケーションのクラスは、「
Application」という見慣れないクラスを継承して作る必要があります。
以下に、アプリケーションのごくごく基本的な形を挙げておきましょう。これがJavaFXアプリケーションの基本になります。
public class クラス extends Application {
public static void main(String[] args) {……}
@Override
public void start(Stage stage) throws Exception {……}
}
JavaFXライブラリは、「
javafx」というパッケージにまとめられています。アプリケーションは、
javafx.applicationパッケージにある「
Application」というクラスを継承します。このクラスは抽象クラスであり、「
start」というメソッドが用意されていて、必ずこれを実装する必要があります。
この
startメソッドは、アプリケーションがスタートする際の処理を作成するためのものです。このメソッドでは、
javafx.stageパッケージの「
Stage」というクラスのインスタンスが引数として渡されます。この
Stageは、「
トップレベルコンテナ」と呼ばれるもので、GUI組み込みの土台となるコンテナです。AWT/Swingでは
Frameや
JFrameといったクラスでウインドウを作り表示しましたが、JavaFXの場合は、この
Stageを使ってウインドウを構築するのが基本になります。
Swingなどと違い、JavaFXでは、「GUIを組み込むためのウインドウ本体は、JavaFX側で用意される」という点です。
Stageを継承したクラスを用意してインスタンスを作るわけでもなく、アプリケーションを起動すれば最初に表示されるアプリケーションのウインドウとして
Stageインスタンスが
startに渡されます。プログラマは、ただその渡された
Stageを利用してGUIを構築するだけです。