public abstract class Application extends Object
ライフサイクル
JavaFXアプリケーションのエントリ・ポイントはApplicationクラスです。アプリケーションが起動されると常に、JavaFXランタイムにより次のことがこの順序で実行されます。
init()
メソッドを呼び出します。start(javafx.stage.Stage)
メソッドを呼び出します。Platform.exit()
が呼び出される場合Platform
のimplicitExit
属性がtrueである場合stop()
メソッドを呼び出します。start
は抽象メソッドであり、オーバーライドされる必要があることに注意してください。init
メソッドとstop
メソッドには、何も行わない具象実装があります。
JavaFXアプリケーションを明示的に終了するには、Platform.exit()
を呼び出すことをお薦めします。代替方法としてSystem.exit(int)
を直接呼び出すことが許容されますが、Applicationはstop()
メソッドを実行できなくなります。
JavaFXアプリケーションは、FXツールキットが終了した後、またはシャットダウンフックから(つまり、stop()
メソッドが戻った後、またはSystem.exit(int)
が呼び出された後に) JavaFXの使用を試みることはできません。
パラメータ
アプリケーションのパラメータは、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();
}
}
この例では次が生成されます。
修飾子と型 | クラスと説明 |
---|---|
static class |
Application.Parameters
アプリケーションのパラメータのセットをカプセル化します。
|
修飾子と型 | フィールドと説明 |
---|---|
static String |
STYLESHEET_CASPIAN
Caspianテーマのユーザー・エージェント・スタイルシートの定数。
|
static String |
STYLESHEET_MODENA
Modenaテーマのユーザー・エージェント・スタイルシートの定数。
|
コンストラクタと説明 |
---|
Application()
新規
Application インスタンスを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
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()
このメソッドは、アプリケーションの停止が必要な場合に呼び出され、アプリケーションが終了してリソースを破棄するための準備をする都合のよい機会を提供します。
|
public static final String STYLESHEET_CASPIAN
public static void launch(Class<? extends Application> appClass, String... args)
launchメソッドは、Platform.exitを呼び出すか、すべてのアプリケーション・ウィンドウを閉じてアプリケーションが終了するまで戻ってきません。
一般的な使用方法は次のとおりです。
public static void main(String[] args) { Application.launch(MyApp.class, args); }ここで、
MyApp
はApplicationのサブクラスです。appClass
- 起動ツールによって構築および実行されるアプリケーション・クラス。args
- アプリケーションに渡されるコマンドライン引数。アプリケーションは、getParameters()
メソッドを使用してこれらのパラメータを取得できます。IllegalStateException
- このメソッドが2回以上呼び出された場合。IllegalArgumentException
- appClass
がApplication
のサブクラスでない場合。public static void launch(String... args)
launchメソッドは、Platform.exitを呼び出すか、すべてのアプリケーション・ウィンドウを閉じてアプリケーションが終了するまで戻ってきません。
一般的な使用方法は次のとおりです。
public static void main(String[] args) { Application.launch(args); }
args
- アプリケーションに渡されるコマンドライン引数。アプリケーションは、getParameters()
メソッドを使用してこれらのパラメータを取得できます。IllegalStateException
- このメソッドが2回以上呼び出された場合。public void init() throws Exception
Applicationクラスで提供されるこのメソッドの実装では何も行いません。
注意: このメソッドはJavaFXアプリケーション・スレッドでは呼び出されません。アプリケーションは、このメソッド内でSceneまたはStageを構築できません。アプリケーションは、このメソッド内でその他のJavaFXオブジェクトを構築できます。
Exception
public abstract void start(Stage primaryStage) throws Exception
注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出されます。
primaryStage
- アプリケーション・シーンを設定できる、このアプリケーションのプライマリ・ステージ。プライマリ・ステージは、アプリケーションがアプレットとして起動された場合はブラウザに埋め込まれます。アプリケーションは、必要な場合は他のステージを作成できますが、それらはプライマリ・ステージではなく、ブラウザに埋め込まれません。Exception
public void stop() throws Exception
Applicationクラスで提供されるこのメソッドの実装では何も行いません。
注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出されます。
Exception
public final HostServices getHostServices()
public final Application.Parameters getParameters()
注意: nullが返されるため、このメソッドをApplicationコンストラクタから呼び出さないでください。init()メソッドで呼び出すか、またはその後いつでも呼び出すことができます。
public final void notifyPreloader(Preloader.PreloaderNotification info)
Preloader.handleApplicationNotification
メソッドに配信されるPreloaderNotificationを指定して、このメソッドを呼び出します。これは、主に、長時間のアプリケーション初期化ステップ中にプレローダーで進捗を表示する必要があるアプリケーションの場合に有用です。
注意: 通知はプレローダーのhandleApplicationNotification()メソッドにのみ配信されるため、つまり、このメソッドをProgressNotificationで呼び出す場合、Preloader.handleProgressNotification
メソッドには配信されません。
info
- アプリケーション生成プレローダー通知public static String getUserAgentStylesheet()
注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出される必要があります。
public static void setUserAgentStylesheet(String url)
-Djavafx.userAgentStylesheetUrl=[URL]
を使用してコマンドラインで設定することもできます。コマンドラインで設定すると、コードのこのメソッドを使用して設定したすべてのものがオーバーライドされます。
注意: このメソッドはJavaFXアプリケーション・スレッドで呼び出される必要があります。
url
- 文字列としてのスタイルシートへのURL。Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.