Looking for javafx Answers? Try Ask4KnowledgeBase
Looking for javafx Keywords? Try Ask4Keywords

javafxjavafxを使い始める


備考

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

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プラットフォームが起動されます。

ここでプログラマーにとって重要なのは次のとおりです。

  1. 最初にlaunch すると、 Application クラス(この場合はHelloWorld )の新しいインスタンスが作成されます。したがって、 Application クラスには、引数なしのコンストラクタが必要です。
  2. 作成されたApplication インスタンスに対してinit() が呼び出されます。この場合、 Application からのデフォルトの実装は何もしません。
  3. startAppication インスタンスに対して呼び出され、プライマリStage (=ウィンドウ)がメソッドに渡されます。このメソッドは、JavaFXアプリケーションスレッド(プラットフォームスレッド)で自動的に呼び出されます。
  4. アプリケーションは、プラットフォームがシャットダウンすると判断するまで実行されます。この場合、最後のウィンドウが閉じられたときに実行されます。
  5. stop メソッドは、 Application インスタンスで呼び出されます。この場合、 Application からの実装は何もしません。このメソッドは、JavaFXアプリケーションスレッド(プラットフォームスレッド)で自動的に呼び出されます。

start 方法では、シーングラフが構築される。この場合、 ButtonStackPane という2つのNode ありStackPane

Button はUIのButton 表し、 StackPaneButton コンテナであり、その配置を決定します。

これらのNode を表示するScene が作成されます。最後に、 Scene 全体が表示されるウィンドウであるStage Scene が追加されます。

インストールまたはセットアップ

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が提供する機能は次のとおりです。

  1. Java API。
  2. FXMLとシーンビルダ。
  3. WebView。
  4. 相互運用性をスイングする。
  5. 組み込みのUIコントロールとCSS。
  6. モデナテーマ。
  7. 3Dグラフィックス機能。
  8. キャンバスAPI。
  9. 印刷API。
  10. リッチテキストサポート。
  11. マルチタッチサポート。
  12. Hi-DPIサポート。
  13. ハードウェア加速グラフィックスパイプライン。
  14. 高性能メディアエンジン。
  15. 自己完結型のアプリケーションデプロイメントモデル