Javafx-architecture
JavaFX-アーキテクチャ
JavaFXは、豊富なグラフィックスを備えたGUIアプリケーションを構築するための豊富なクラスとインターフェイスのセットを備えた完全なAPIを提供します。 このAPIの重要なパッケージは次のとおりです-
- javafx.animation -塗りつぶし、フェード、回転、拡大縮小、変換などの遷移ベースのアニメーションをJavaFXノードに追加するクラスが含まれています。
- javafx.application -JavaFXアプリケーションのライフサイクルを担当するクラスのセットが含まれています。
- javafx.css -CSSのようなスタイルをJavaFX GUIアプリケーションに追加するクラスが含まれています。
- javafx.event -JavaFXイベントを配信および処理するためのクラスとインターフェースが含まれています。
- javafx.geometry -2Dオブジェクトを定義し、それらに対して操作を実行するクラスが含まれています。
- javafx.stage -このパッケージには、JavaFXアプリケーションのトップレベルのコンテナクラスが含まれています。
- javafx.scene -このパッケージは、シーングラフをサポートするクラスとインターフェイスを提供します。 さらに、キャンバス、チャート、コントロール、エフェクト、画像、入力、レイアウト、メディア、ペイント、形状、テキスト、変換、Webなどのサブパッケージも提供します。 このJavaFXの豊富なAPIをサポートするコンポーネントがいくつかあります。
次の図は、JavaFX APIのアーキテクチャを示しています。 ここでは、JavaFX APIをサポートするコンポーネントを見ることができます。
シーングラフ
JavaFXでは、GUIアプリケーションはシーングラフを使用してコーディングされていました。 シーングラフは、GUIアプリケーションの構築の開始点です。 ノードと呼ばれる(GUI)アプリケーションプリミティブを保持します。
ノードは視覚的/グラフィカルなオブジェクトであり、それが含まれる場合があります-
- 幾何学的(グラフィック)オブジェクト-(2Dおよび3D)(円、長方形、多角形など)
- * UIコントロール*-ボタン、チェックボックス、選択ボックス、テキスト領域など。
- コンテナ-(レイアウトペイン)(境界ペイン、グリッドペイン、フローペインなど)
- メディア要素-オーディオ、ビデオ、画像オブジェクトなど。
一般に、ノードのコレクションはシーングラフを作成します。 これらのノードはすべて、以下に示すように階層順に配置されています。
シーングラフの各ノードには単一の親があり、親を含まないノードは*ルートノード*と呼ばれます。
同様に、すべてのノードには1つ以上の子があり、子のないノードは*リーフノード*と呼ばれます。子を持つノードは*ブランチノード*と呼ばれます。
ノードインスタンスは、シーングラフに1回だけ追加できます。 シーングラフのノードには、効果、不透明度、変換、イベントハンドラー、イベントハンドラー、アプリケーション固有の状態を設定できます。
プリズム
Prismは、JavaFXでグラフィックスをレンダリングするために使用される*高性能ハードウェア加速グラフィックパイプライン*です。 2Dおよび3Dグラフィックの両方をレンダリングできます。
グラフィックをレンダリングするために、Prismは以下を使用します-
- Windows XPおよびVista上のDirectX 9。
- Windows 7上のDirectX 11。
- MacおよびLinuxのOpenGL、組み込みシステム。
システム上のグラフィックスのハードウェアサポートが十分でない場合、Prismはソフトウェアレンダーパスを使用してグラフィックスを処理します。
サポートされているグラフィックカードまたはGPUで使用すると、よりスムーズなグラフィックを提供します。 システムがグラフィックカードをサポートしていない場合に備えて、Prismはデフォルトでソフトウェアレンダリングスタック(上記2つのいずれか)を使用します。
GWT(Glass Windowing Toolkit)
名前が示すように、GWTはWindows、タイマー、Surfaces、およびイベントキューを管理するサービスを提供します。 GWTはJavaFXプラットフォームをネイティブオペレーティングシステムに接続します。
量子ツールキット
これは、Prism、Glass、Media Engine、およびWeb Engineの低レベルコンポーネントを抽象化したものです。 PrismとGWTを結び付け、JavaFXで利用できるようにします。
WebView
JavaFXを使用して、HTMLコンテンツをシーングラフに埋め込むこともできます。 WebViewは、このコンテンツの処理に使用されるJavaFXのコンポーネントです。 内部のオープンソースWebブラウザーエンジンである Web Kit と呼ばれるテクノロジーを使用します。 このコンポーネントは、HTML5、CSS、JavaScript、DOM、SVGなどのさまざまなWebテクノロジーをサポートしています。
WebViewを使用すると、次のことができます-
- ローカルまたはリモートURLからHTMLコンテンツをレンダリングします。
- 履歴をサポートし、戻るおよび進むナビゲーションを提供します。
- コンテンツをリロードします。
- Webコンポーネントにエフェクトを適用します。
- HTMLコンテンツを編集します。
- JavaScriptコマンドを実行します。
- イベントを処理します。
一般に、WebViewを使用して、JavaからWebコンテンツを制御できます。
メディアエンジン
- JavaFXメディアエンジン*は、 Streamer として知られるオープンソースエンジンに基づいています。 このメディアエンジンは、ビデオおよびオーディオコンテンツの再生をサポートしています。
JavaFXメディアエンジンは、次のファイル形式のオーディオのサポートを提供します-
Audio |
|
Video |
|
パッケージ javafx.scene.media には、JavaFXでメディア機能を提供するクラスとインターフェースが含まれています。 それは3つのコンポーネントの形で提供されます-
- メディアオブジェクト-これはメディアファイルを表します
- Media Player -メディアコンテンツを再生します。
- メディアビュー-メディアを表示します。