モジュール javafx.graphics
パッケージ javafx.application

クラスApplication

  • 直系の既知のサブクラス:
    Preloader


    public abstract class Application
    extends Object
    JavaFXアプリケーションによる拡張元となるApplicationクラス

    ライフサイクル

    JavaFXアプリケーションのエントリ・ポイントはApplicationクラスです。 アプリケーションが起動されると常に、JavaFXランタイムにより次のことがこの順序で実行されます。

    1. すでに(詳細はPlatform.startup(Runnable)を参照してください)を開始していない場合は、JavaFXのランタイムを開始
    2. 指定されたApplicationクラスのインスタンスを構築します。
    3. init()メソッドを呼び出します。
    4. start(javafx.stage.Stage)メソッドを呼び出します。
    5. 次のいずれかが発生した場合、アプリケーションの完了を待機します。
      • アプリケーションによりPlatform.exit()が呼び出される場合
      • 最後のウィンドウが閉じられ、かつPlatformimplicitExit属性がtrueである場合
    6. stop()メソッドを呼び出します。

    startは抽象メソッドであり、オーバーライドされる必要があることに注意してください。 initメソッドとstopメソッドには、何も行わない具象実装があります。

    Applicationサブクラスはパブリック宣言され、パブリック引数なしコンストラクタを持たなければなりません。

    JavaFXアプリケーションを明示的に終了するには、Platform.exit()を呼び出すことをお薦めします。 代替方法としてSystem.exit(int)を直接呼び出すことが許容されますが、Applicationはstop()メソッドを実行できなくなります。

    JavaFXアプリケーションは、FXツールキットが終了した後、またはシャットダウンフックから(つまり、stop()メソッドが戻った後、またはSystem.exit(int)が呼び出された後に) JavaFXの使用を試みることはできません。

    アプリケーションをモジュールとしてデプロイ

    Applicationサブクラスが名前付きモジュールにある場合、そのクラスはjavafx.graphicsモジュールからアクセス可能でなければなりません。 それ以外の場合は、アプリケーションの起動時に例外がスローされます。 つまり、クラス自体がpublic宣言されていることに加えて、モジュールは少なくともjavafx.graphicsモジュールに含まれているパッケージを公開する必要があります。

    com.foo.MyApplicationfoo.appモジュールである場合、例えば、module-info.javaは次のようになります:

    module foo.app {
        exports com.foo to javafx.graphics;
    }

    パラメータ

    アプリケーションのパラメータは、init()メソッドからgetParameters()メソッドを呼び出して使用できるか、またはinitメソッドが呼び出された後にいつでも使用できます。

    スレッド

    JavaFXは、アプリケーションのstartメソッドの実行、入力イベントの処理、およびアニメーション・タイムラインの実行用のアプリケーション・スレッドを作成します。 JavaFXのSceneStageオブジェクトの作成、およびライブ・オブジェクト(シーンにすでに接続されているオブジェクト)に対するシーン・グラフ操作の変更は、JavaFXアプリケーション・スレッドで実行される必要があります。

    Java起動ツールは、JavaFXアプリケーション・スレッド上で指定されたApplicationクラスをロードおよび初期化します。 Applicationクラスにmainメソッドがない場合、またはmainメソッドがApplication.launch()を呼び出す場合は、ApplicationのインスタンスがJavaFXアプリケーション・スレッドに構築されます。

    initメソッドは、JavaFXアプリケーション・スレッドではなく起動ツール・スレッドで呼び出されます。 これは、アプリケーションがinitメソッド内にSceneまたはStageを構築できないことを意味します。 アプリケーションは、initメソッド内に他のJavaFXオブジェクトを構築できます。

    イベントのディスパッチ中、アニメーション・タイムラインの実行中、またはその他のコード中にJavaFXアプリケーション・スレッドで発生したすべての未処理例外は、スレッドのuncaught exception handlerに転送されます。

    次の例は、単純なJavaFXアプリケーションを示しています。

    
    import javafx.application.Application;
    import javafx.scene.Group;
    import javafx.scene.Scene;
    import javafx.scene.shape.Circle;
    import javafx.stage.Stage;
    
    public class MyApp extends Application {
        public void start(Stage stage) {
            Circle circ = new Circle(40, 40, 30);
            Group root = new Group(circ);
            Scene scene = new Scene(root, 400, 300);
    
            stage.setTitle("My JavaFX Application");
            stage.setScene(scene);
            stage.show();
        }
    }
     

    この例では次が生成されます。

    シーンの左上隅の黒丸

    導入されたバージョン:
    JavaFX 2.0
    関連項目:
    Platform
    • ネストされたクラスのサマリー

      ネストされたクラス 
      修飾子と型 クラス 説明
      static class  Application.Parameters
      アプリケーションのパラメータのセットをカプセル化します。
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static String STYLESHEET_CASPIAN
      Caspianテーマのユーザー・エージェント・スタイルシートの定数。
      static String STYLESHEET_MODENA
      Modenaテーマのユーザー・エージェント・スタイルシートの定数。
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      Application​()
      新規Applicationインスタンスを構築します。
    • メソッドのサマリー

      すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 
      修飾子と型 メソッド 説明
      HostServices getHostServices​()
      このアプリケーションのHostServicesプロバイダを取得します。
      Application.Parameters getParameters​()
      このアプリケーションのパラメータ(コマンドラインで渡された引数、およびアプレットやWebStartアプリケーションのJNLPファイルで指定されたパラメータを含む)を取得します。
      static String getUserAgentStylesheet​()
      アプリケーション全体で使用されるユーザー・エージェント・スタイルシートを取得します。
      void init​()
      アプリケーション初期化メソッド。
      static void launch​(Class<? extends Application> appClass, String... args)
      スタンドアロン・アプリケーションを起動します。
      static void launch​(String... args)
      スタンドアロン・アプリケーションを起動します。
      void notifyPreloader​(Preloader.PreloaderNotification info)
      アプリケーション生成通知を使用してプレローダーに通知します。
      static void setUserAgentStylesheet​(String url)
      アプリケーション全体で使用されるユーザー・エージェント・スタイルシートを設定します。
      abstract void start​(Stage primaryStage)
      すべてのJavaFXアプリケーションのメイン・エントリ・ポイント。
      void stop​()
      このメソッドは、アプリケーションの停止が必要な場合に呼び出され、アプリケーションが終了してリソースを破棄するための準備をする都合のよい機会を提供します。
    • フィールドの詳細

      • STYLESHEET_CASPIAN

        public static final String STYLESHEET_CASPIAN
        Caspianテーマのユーザー・エージェント・スタイルシートの定数。 Caspianは、JavaFX 2.xでデフォルトとして提供されていたテーマです。
        導入されたバージョン:
        JavaFX 8.0
        関連項目:
        定数フィールド値
      • STYLESHEET_MODENA

        public static final String STYLESHEET_MODENA
        Modenaテーマのユーザー・エージェント・スタイルシートの定数。 Modenaは、JavaFX 8.xのデフォルト・テーマです。
        導入されたバージョン:
        JavaFX 8.0
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • Application

        public Application​()
        新規Applicationインスタンスを構築します。
    • メソッドの詳細

      • launch

        public static void launch​(Class<? extends Application> appClass,
                                  String... args)
        スタンドアロン・アプリケーションを起動します。 このメソッドは、通常、main()メソッドから呼び出されます。 複数回呼び出すことはできず、複数回呼び出した場合は例外がスローされます。

        launchメソッドは、Platform.exitを呼び出すか、すべてのアプリケーション・ウィンドウを閉じてアプリケーションが終了するまで戻ってきません。 appClass引数で指定されたクラスは、少なくともjavafx.graphicsモジュールとの間でexported (またはopen)であるパッケージ内のパブリック引数なしコンストラクタを持つApplicationのパブリック・サブ・クラスでなければなりません。そうしないとRuntimeExceptionがスローされます。

        一般的な使用方法は次のとおりです。

             public static void main(String[] args) {
                 Application.launch(MyApp.class, args);
             }
         
        ここで、MyAppはApplicationのサブクラスです。
        パラメータ:
        appClass - 起動ツールによって構築および実行されるアプリケーション・クラス。
        args - アプリケーションに渡されるコマンドライン引数。 アプリケーションは、getParameters()メソッドを使用してこれらのパラメータを取得できます。
        例外:
        IllegalStateException - このメソッドが2回以上呼び出された場合。
        IllegalArgumentException - appClassApplicationのサブクラスでない場合。
        RuntimeException - JavaFXランタイムを起動する際にエラーが発生した場合、またはアプリケーション・クラスが(クラスが公開されていないか、エクスポートされたパッケージにない場合)を構築できない場合、またはApplicationコンストラクタ、initメソッド、startメソッド、またはstopメソッドによって例外またはエラーがスローされた場合。
      • launch

        public static void launch​(String... args)
        スタンドアロン・アプリケーションを起動します。 このメソッドは、通常、main()メソッドから呼び出されます。 複数回呼び出すことはできず、複数回呼び出した場合は例外がスローされます。 これは、launch(TheClass.class, args)と等価です。TheClassは、launchを呼び出したメソッドをすぐに囲むクラスです。 少なくともjavafx.graphicsモジュールとの間でexported (またはopen)であるパッケージ内で、パブリック引数なしコンストラクタを持つApplicationのパブリック・サブ・クラスでなければなりません。そうしないと、RuntimeExceptionがスローされます。

        launchメソッドは、Platform.exitを呼び出すか、すべてのアプリケーション・ウィンドウを閉じてアプリケーションが終了するまで戻ってきません。

        一般的な使用方法は次のとおりです。

             public static void main(String[] args) {
                 Application.launch(args);
             }
         
        パラメータ:
        args - アプリケーションに渡されるコマンドライン引数。 アプリケーションは、getParameters()メソッドを使用してこれらのパラメータを取得できます。
        例外:
        IllegalStateException - このメソッドが2回以上呼び出された場合。
        RuntimeException - JavaFXランタイムを起動する際にエラーが発生した場合、またはアプリケーション・クラスが(クラスが公開されていないか、エクスポートされたパッケージにない場合)を構築できない場合、またはApplicationコンストラクタ、initメソッド、startメソッド、またはstopメソッドによって例外またはエラーがスローされた場合。
      • init

        public void init​()
                  throws Exception
        アプリケーション初期化メソッド。 このメソッドは、Applicationクラスがロードおよび構築された直後に呼び出されます。 アプリケーションは、このメソッドをオーバーライドして、アプリケーションを実際に起動する前に初期化を実行できます。

        Applicationクラスで提供されるこのメソッドの実装では何も行いません。

        注意: このメソッドはJavaFXアプリケーション・スレッドでは呼び出されません。 アプリケーションは、このメソッド内でSceneまたはStageを構築できません。 アプリケーションは、このメソッド内でその他のJavaFXオブジェクトを構築できます。

        例外:
        Exception - 何かがうまくいかない場合
      • start

        public abstract void start​(Stage primaryStage)
                            throws Exception
        すべてのJavaFXアプリケーションのメイン・エントリ・ポイント。 startメソッドは、initメソッドが戻った後、およびシステムでアプリケーションの実行開始の準備が整った後に呼び出されます。

        注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出されます。

        パラメータ:
        primaryStage - アプリケーション・シーンを設定できる、このアプリケーションのプライマリ・ステージ。 プライマリ・ステージは、アプリケーションがアプレットとして起動された場合はブラウザに埋め込まれます。 アプリケーションは、必要な場合は他のステージを作成できますが、それらはプライマリ・ステージではなく、ブラウザに埋め込まれません。
        例外:
        Exception - 何かがうまくいかない場合
      • stop

        public void stop​()
                  throws Exception
        このメソッドは、アプリケーションの停止が必要な場合に呼び出され、アプリケーションが終了してリソースを破棄するための準備をする都合のよい機会を提供します。

        Applicationクラスで提供されるこのメソッドの実装では何も行いません。

        注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出されます。

        例外:
        Exception - 何かがうまくいかない場合
      • getHostServices

        public final HostServices getHostServices​()
        このアプリケーションのHostServicesプロバイダを取得します。 このアプリケーションのコード・ベースおよびドキュメント・ベースを取得する機能、および包含Webページにアクセスする機能を提供します。
        戻り値:
        HostServicesプロバイダ
      • getParameters

        public final Application.Parameters getParameters​()
        このアプリケーションのパラメータ(コマンドラインで渡された引数、およびアプレットやWebStartアプリケーションのJNLPファイルで指定されたパラメータを含む)を取得します。

        注意: nullが返されるため、このメソッドをApplicationコンストラクタから呼び出さないでください。 init()メソッドで呼び出すか、またはその後いつでも呼び出すことができます。

        戻り値:
        このアプリケーションのパラメータ、またはコンストラクタから呼び出された場合はnull。
      • notifyPreloader

        public final void notifyPreloader​(Preloader.PreloaderNotification info)
        アプリケーション生成通知を使用してプレローダーに通知します。 アプリケーション・コードは、プレローダーのPreloader.handleApplicationNotificationメソッドに配信されるPreloaderNotificationを指定して、このメソッドを呼び出します。 これは、主に、長時間のアプリケーション初期化ステップ中にプレローダーで進捗を表示する必要があるアプリケーションの場合に有用です。

        注意: 通知はプレローダーのhandleApplicationNotification()メソッドにのみ配信されるため、つまり、このメソッドをProgressNotificationで呼び出す場合、Preloader.handleProgressNotificationメソッドには配信されません。

        パラメータ:
        info - アプリケーション生成プレローダー通知
      • getUserAgentStylesheet

        public static String getUserAgentStylesheet​()
        アプリケーション全体で使用されるユーザー・エージェント・スタイルシートを取得します。 すべてのUIコントロールおよびその他のノードのデフォルトのスタイルを提供するために使用されます。 値にnullを指定すると、プラットフォームのデフォルトのスタイルシートが使用されます。

        注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出される必要があります。

        戻り値:
        文字列としてのスタイルシートへのURL。
        導入されたバージョン:
        JavaFX 8.0
      • setUserAgentStylesheet

        public static void setUserAgentStylesheet​(String url)
        アプリケーション全体で使用されるユーザー・エージェント・スタイルシートを設定します。 すべてのUIコントロールおよびその他のノードのデフォルトのスタイルを提供するために使用されます。 JavaFXの各リリースにはこれに対して新しいデフォルト値が存在する可能性があるため、整合性を保証する必要がある場合は、このメソッドを呼び出して、アプリケーションに使用するデフォルトを選択する必要があります。 値にnullを指定すると、プラットフォームのデフォルトのスタイルシートが復元されます。 このプロパティは、-Djavafx.userAgentStylesheetUrl=[URL]を使用してコマンドラインで設定することもできます。コマンドラインで設定すると、コードのこのメソッドを使用して設定したすべてのものがオーバーライドされます。

        注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出される必要があります。

        パラメータ:
        url - 文字列としてのスタイルシートへのURL。
        導入されたバージョン:
        JavaFX 8.0