javafx チュートリアル
javafxを使い始める
サーチ…
備考
JavaFXは、幅広い種類のデバイスで動作するリッチインターネットアプリケーション(RIA)だけでなく、デスクトップアプリケーションを作成して配信するためのソフトウェアプラットフォームです。 JavaFXは、Java SE用の標準GUIライブラリとしてSwingを置き換えることを意図しています。
IT担当者は、リッチ・クライアント・アプリケーションの設計、作成、テスト、デバッグ、およびデプロイを行うことができます。
JavaFXアプリケーションの外観は、スタイリング用にCSS(Cascading Style Sheets)を使用してカスタマイズすることができます( JavaFX:CSSを参照)。(F)XMLファイルを使用して構造体をオブジェクト化してアプリケーションの構築や開発を容易にします( FXMLおよびコントローラを参照) 。シーンビルダはビジュアルエディタで、コードを記述することなくUI用のfxmlファイルを作成できます。
バージョン
バージョン | 発売日 |
---|---|
JavaFX 2 | 2011年10月10日 |
JavaFX 8 | 2014-03-18 |
インストールまたはセットアップ
JavaFX APIは、Java SE Runtime Environment(JRE)とJava Development Kit(JDK)の完全に統合された機能として利用できます。 JDKはすべての主要なデスクトッププラットフォーム(Windows、Mac OS X、およびLinux)で使用できるため、JDK 7以降にコンパイルされたJavaFXアプリケーションはすべての主要なデスクトッププラットフォームでも動作します。 ARMプラットフォームのサポートもJavaFX 8で利用可能になりました。ARM用JDKには、JavaFXのベース、グラフィックス、およびコントロールコンポーネントが含まれています。
JavaFXをインストールするには、選択したバージョンのJava Runtime環境とJava Developmentキットをインストールします。
JavaFXが提供する機能は次のとおりです。
- Java API。
- FXMLとシーンビルダ。
- WebView。
- 相互運用性をスイングする。
- 組み込みのUIコントロールとCSS。
- モデナテーマ。
- 3Dグラフィックス機能。
- キャンバスAPI。
- 印刷API。
- リッチテキストサポート。
- マルチタッチサポート。
- Hi-DPIサポート。
- ハードウェア加速グラフィックスパイプライン。
- 高性能メディアエンジン。
- 自己完結型のアプリケーションデプロイメントモデル
Hello Worldプログラム
次のコードは、クリック時にString
をコンソールに表示する単一のButton
を含む単純なユーザーインターフェイスを作成します。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class HelloWorld extends Application {
@Override
public void start(Stage primaryStage) {
// create a button with specified text
Button button = new Button("Say 'Hello World'");
// set a handler that is executed when the user activates the button
// e.g. by clicking it or pressing enter while it's focused
button.setOnAction(e -> {
//Open information dialog that says hello
Alert alert = new Alert(AlertType.INFORMATION, "Hello World!?");
alert.showAndWait();
});
// the root of the scene shown in the main window
StackPane root = new StackPane();
// add button as child of the root
root.getChildren().add(button);
// create a scene specifying the root and the size
Scene scene = new Scene(root, 500, 300);
// add scene to the stage
primaryStage.setScene(scene);
// make the stage visible
primaryStage.show();
}
public static void main(String[] args) {
// launch the HelloWorld application.
// Since this method is a member of the HelloWorld class the first
// parameter is not required
Application.launch(HelloWorld.class, args);
}
}
Application
クラスはすべてのJavaFXアプリケーションのエントリポイントです。 Application
は1つだけ起動でき、これは
Application.launch(HelloWorld.class, args);
これにより、パラメータとして渡されたApplication
クラスのインスタンスが作成され、JavaFXプラットフォームが起動されます。
ここでプログラマーにとって重要なのは次のとおりです。
- 最初に
launch
すると、Application
クラス(この場合はHelloWorld
)の新しいインスタンスが作成されます。したがって、Application
クラスには、引数なしのコンストラクタが必要です。 - 作成された
Application
インスタンスに対してinit()
が呼び出されます。この場合、Application
からのデフォルトの実装は何もしません。 -
start
がAppication
インスタンスに対して呼び出され、プライマリStage
(=ウィンドウ)がメソッドに渡されます。このメソッドは、JavaFXアプリケーションスレッド(プラットフォームスレッド)で自動的に呼び出されます。 - アプリケーションは、プラットフォームがシャットダウンすると判断するまで実行されます。この場合、最後のウィンドウが閉じられたときに実行されます。
-
stop
メソッドは、Application
インスタンスで呼び出されます。この場合、Application
からの実装は何もしません。このメソッドは、JavaFXアプリケーションスレッド(プラットフォームスレッド)で自動的に呼び出されます。
start
方法では、シーングラフが構築される。この場合、 Button
とStackPane
という2つのNode
ありStackPane
。
Button
はUIのButton
表し、 StackPane
はButton
コンテナであり、その配置を決定します。
これらのNode
を表示するScene
が作成されます。最後に、 Scene
全体が表示されるウィンドウであるStage
Scene
が追加されます。