JavaFX-アーキテクチャ

JavaFXは、豊富なグラフィックを備えたGUIアプリケーションを構築するための豊富なクラスとインターフェースのセットを備えた完全なAPIを提供します。このAPIの重要なパッケージは次のとおりです。

  • javafx.animation −塗りつぶし、フェード、回転、拡大縮小、平行移動などの遷移ベースのアニメーションをJavaFXノードに追加するためのクラスが含まれています。

  • javafx.application −JavaFXアプリケーションのライフサイクルを担当するクラスのセットが含まれています。

  • javafx.css − JavaFXGUIアプリケーションにCSSのようなスタイルを追加するためのクラスが含まれています。

  • javafx.event −JavaFXイベントを配信および処理するためのクラスとインターフェースが含まれています。

  • javafx.geometry − 2Dオブジェクトを定義し、それらに対して操作を実行するためのクラスが含まれています。

  • javafx.stage −このパッケージは、JavaFXアプリケーションの最上位のコンテナクラスを保持します。

  • javafx.scene−このパッケージは、シーングラフをサポートするためのクラスとインターフェイスを提供します。さらに、キャンバス、チャート、コントロール、エフェクト、画像、入力、レイアウト、メディア、ペイント、シェイプ、テキスト、変換、Webなどのサブパッケージも提供します。JavaFXのこの豊富なAPIをサポートするコンポーネントがいくつかあります。 。

次の図は、JavaFXAPIのアーキテクチャを示しています。ここでは、JavaFXAPIをサポートするコンポーネントを確認できます。

シーングラフ

JavaFXでは、GUIアプリケーションはシーングラフを使用してコーディングされていました。シーングラフは、GUIアプリケーションの構築の開始点です。これは、ノードと呼ばれる(GUI)アプリケーションプリミティブを保持します。

ノードは視覚的/グラフィックオブジェクトであり、次のものが含まれる場合があります。

  • Geometrical (Graphical) objects −(2Dおよび3D)円、長方形、多角形など。

  • UI controls −ボタン、チェックボックス、選択ボックス、テキスト領域など。

  • Containers −(レイアウトペイン)境界ペイン、グリッドペイン、フローペインなど。

  • Media elements −オーディオ、ビデオ、画像オブジェクトなど。

一般に、ノードのコレクションはシーングラフを作成します。これらのノードはすべて、以下に示すように階層順に配置されています。

シーングラフの各ノードには単一の親があり、親を含まないノードは、 root node

同様に、すべてのノードには1つ以上の子があり、子のないノードは次のように呼ばれます。 leaf node; 子を持つノードは、branch node

ノードインスタンスは、シーングラフに一度だけ追加できます。シーングラフのノードには、効果、不透明度、変換、イベントハンドラー、イベントハンドラー、アプリケーション固有の状態を含めることができます。

プリズム

プリズムは high performance hardware–accelerated graphical pipelineこれは、JavaFXでグラフィックをレンダリングするために使用されます。2Dグラフィックと3Dグラフィックの両方をレンダリングできます。

グラフィックをレンダリングするために、Prismは-を使用します

  • WindowsXPおよびVista上のDirectX9。
  • Windows7上のDirectX11。
  • MacおよびLinux、組み込みシステム上のOpenGL。

システム上のグラフィックスのハードウェアサポートが十分でない場合、Prismはソフトウェアレンダリングパスを使用してグラフィックスを処理します。

サポートされているグラフィックカードまたはGPUと一緒に使用すると、より滑らかなグラフィックが提供されます。システムがグラフィックカードをサポートしていない場合に備えて、Prismはデフォルトでソフトウェアレンダリングスタック(上記の2つのいずれか)になります。

GWT(Glass Windowing Toolkit)

名前が示すように、GWTは、Windows、タイマー、サーフェス、およびイベントキューを管理するためのサービスを提供します。GWTは、JavaFXプラットフォームをネイティブオペレーティングシステムに接続します。

クォンタムツールキット

これは、Prism、Glass、Media Engine、およびWebEngineの低レベルコンポーネントを抽象化したものです。PrismとGWTを結び付け、JavaFXで利用できるようにします。

WebView

JavaFXを使用して、HTMLコンテンツをシーングラフに埋め込むこともできます。WebViewは、このコンテンツを処理するために使用されるJavaFXのコンポーネントです。それはと呼ばれる技術を使用していますWeb Kit、これは内部のオープンソースWebブラウザエンジンです。このコンポーネントは、HTML5、CSS、JavaScript、DOM、SVGなどのさまざまなWebテクノロジーをサポートしています。

WebViewを使用すると、次のことができます。

  • ローカルまたはリモートのURLからHTMLコンテンツをレンダリングします。
  • 履歴をサポートし、前後のナビゲーションを提供します。
  • コンテンツをリロードします。
  • Webコンポーネントにエフェクトを適用します。
  • HTMLコンテンツを編集します。
  • JavaScriptコマンドを実行します。
  • イベントを処理します。

一般に、WebViewを使用すると、JavaからWebコンテンツを制御できます。

メディアエンジン

ザ・ JavaFX media engine として知られているオープンソースエンジンに基づいています Streamer。このメディアエンジンは、ビデオおよびオーディオコンテンツの再生をサポートします。

JavaFXメディアエンジンは、次のファイル形式のオーディオのサポートを提供します-

Audio
  • MP3
  • WAV
  • AIFF
Video
  • FLV

その包み javafx.scene.mediaJavaFXでメディア機能を提供するためのクラスとインターフェイスが含まれています。これは、次の3つのコンポーネントの形式で提供されます。

  • Media Object −これはメディアファイルを表します

  • Media Player −メディアコンテンツを再生するため。

  • Media View −メディアを表示します。