- java.lang.Object
-
- javafx.application.Application
-
- 直系の既知のサブクラス:
Preloader
public abstract class Application extends Object
JavaFXアプリケーションによる拡張元となるApplicationクラスライフサイクル
JavaFXアプリケーションのエントリ・ポイントはApplicationクラスです。 アプリケーションが起動されると常に、JavaFXランタイムにより次のことがこの順序で実行されます。
- すでに(詳細は
Platform.startup(Runnable)
を参照してください)を開始していない場合は、JavaFXのランタイムを開始 - 指定されたApplicationクラスのインスタンスを構築します。
init()
メソッドを呼び出します。start(javafx.stage.Stage)
メソッドを呼び出します。- 次のいずれかが発生した場合、アプリケーションの完了を待機します。
- アプリケーションにより
Platform.exit()
が呼び出される場合 - 最後のウィンドウが閉じられ、かつ
Platform
のimplicitExit
属性がtrueである場合
- アプリケーションにより
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.MyApplication
がfoo.app
モジュールである場合、例えば、module-info.java
は次のようになります:module foo.app { exports com.foo to javafx.graphics; }
パラメータ
アプリケーションのパラメータは、
init()
メソッドからgetParameters()
メソッドを呼び出して使用できるか、またはinit
メソッドが呼び出された後にいつでも使用できます。スレッド
JavaFXは、アプリケーションのstartメソッドの実行、入力イベントの処理、およびアニメーション・タイムラインの実行用のアプリケーション・スレッドを作成します。 JavaFXの
Scene
やStage
オブジェクトの作成、およびライブ・オブジェクト(シーンにすでに接続されているオブジェクト)に対するシーン・グラフ操作の変更は、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()
このメソッドは、アプリケーションの停止が必要な場合に呼び出され、アプリケーションが終了してリソースを破棄するための準備をする都合のよい機会を提供します。
-
-
-
メソッドの詳細
-
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
-appClass
がApplication
のサブクラスでない場合。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
-
-