JavaFXアプリケーションの基本構造を解説!Stage・Scene・Nodesの役割と関係
一般的に、JavaFXアプリケーションは「Stage(ステージ)」「Scene(シーン)」「Nodes(ノード)」という3つの主要コンポーネントで構成されています。以下の図のように、それぞれが階層的に連携することでアプリケーションの画面が実現されます。

Stage(ステージ)とは
Stageはウィンドウそのものを指し、JavaFXアプリケーションのすべてのオブジェクトを格納する最上位のコンテナです。Stageはパッケージjavafx.stageのStageクラスによって表現されます。なお、Stageの内容を画面に表示するには、show()メソッドを呼び出す必要があります。
Scene Graph(シーングラフ)とは
シーングラフは、木構造(ツリー構造)に似たデータ構造であり、現代のグラフィカルアプリケーションではノードの集合体として扱われます。JavaFXアプリケーションにおいては、パッケージjavafx.sceneのSceneクラスがシーングラフのすべてのコンテンツを保持します。
シーンを作成する際には、必ずルートノードを指定する必要があります。
1つのシーンオブジェクトは、1つのステージにのみ追加できます。
Nodes(ノード)とは
ノードとは、JavaFXアプリケーションにおける視覚的・グラフィカルな基本要素のことです。具体的には、以下のようなオブジェクトがノードの例として挙げられます。
2D/3Dの幾何学オブジェクト:円(Circle)、球(Sphere)など
UIコントロール:ボタン(Button)、チェックボックス(CheckBox)など
コンテナ/レイアウト:BorderPane、GridPaneなど
メディア要素:音声、動画、画像などのオブジェクト
親ノード・子ノード・ルートノードの関係
シーングラフ内の各ノードは必ず1つの親を持ちます。そして、親を持たないノードはルートノード(root node)と呼ばれます。同様に、すべてのノードは1つ以上の子を持つことができ、子を持たないノードはリーフノード(leaf node)、子を持つノードはブランチノード(branch node)と分類されます。
JavaFXにおけるルートノードの種類
JavaFXアプリケーションで使用できる主なルートノードには、以下のような種類があります。
Group(グループ) − 複数の子ノードをまとめて管理する集合ノードです。グループノードが描画されると、その子ノードも順番にすべて描画されます。また、グループに適用された変換やエフェクトは、すべての子ノードに対しても適用されます。
Region(リージョン) − Chart、Pane、Controlなど、JavaFXのNodeベースUIコントロールすべての基底クラスです。
WebView(ウェブビュー) − Webエンジンを管理し、そのコンテンツを表示するノードです。
Leaf Node(リーフノード) − 子ノードを持たないノードです。Rectangle(矩形)、Ellipse(楕円)、Box(ボックス)、ImageView、MediaViewなどがその例として挙げられます。
-
JavaFXのシーングラフとは?基本構造とノードの役割を解説
JavaFXにおけるシーングラフとは JavaFXでは、GUIアプリケーションは「シーングラフ(Scene Graph)」と呼ばれるデータ構造を用いて構築されます。シーングラフは、モダンなグラフィカルアプリケーションで広く採用されている、ツリー構造に似たデータ構造です。アプリケーションの起点となるものであり、複数のノード(Node)の集合体として表現されます。 JavaFXで何かを画面に表示するには、ノードを使ってシーングラフを構築し、それをStageクラスのオブジェクトに設定する必要があります。Stageクラスは、JavaFXアプリケーションにおける最上位のコンテナとして機能します。 ノード
-
OpenCVとJavaFXで画像の鮮明さを変更するアプリケーションの作成方法
画像のシャープ化(鮮明化)は、ぼかし処理とは正反対の操作です。OpenCVライブラリを使って画像の鮮明さを変更するには、まずガウシアンフィルタで元画像を平滑化(ぼかし)し、次にその平滑化した画像を元画像から減算します。この処理により、輪郭やディテールが強調され、画像全体がくっきりとした印象になります。 仕組みのポイント 本記事のサンプルでは、Core.addWeighted()メソッドを使って元画像と平滑化画像を加重合成しています。第2引数のalphaは元画像の重み、第4引数のbetaは平滑化画像の重みです。betaを負の値に設定すると、平滑化成分が元画像から差し引かれ、シャープ化効果が得ら