JavaFx / FXMLの「ノード」とは何ですか?



What Is Anodein Javafx Fxml



解決:

あなたが何を理解する前に ノード つまり、まず最初に何を理解することも重要です シーングラフ にありますJavaFX。

JavaFXアプリケーションは、 ステージシーン またはいくつかのシーン。ステージは、アプリケーションの最上位のコンテナーです。一方、シーンには、アプリケーションのすべてのコンテンツ(ユーザーインターフェイス要素)(アプリケーションに「ページ」が1つしかない場合)またはアプリケーションの「ページ」の1つのコンテンツが含まれ、 /ステージ上。 (ここで明確にするために、ページとは、たとえばログインページなど、ユーザーが操作するものを意味します。)



シーングラフは、シーン内のすべてのものがどのように配置されているかをグラフィカルに示したものです。このグラフは、ツリーデータ構造の形式で表されます。

ノードはシーングラフのアイテムです。



この画像はこれを明確に説明していると思います。

ここに画像の説明を入力してください

ノードの例はControl。これは、TextField、Button、TextAreaなど、ユーザーが操作できるものです。



フォトクレジット


ノードはシーングラフが「作られている」グラフィック要素の抽象的なスーパークラス。

から継承するクラスのいくつかの例ノード:

  • テキストフィールド
  • アンカーペイン
  • キャンバス
  • グループ
  • VBox
  • ボタン
  • ラベル
  • ..。

注入するのノードFXMLLoader IDは次のように実行されます:

  1. に関連付けられたコントローラーにフィールドを作成します fxml 適切なタイプ(つまり、注入する要素を割り当てることができる任意のタイプ)を使用します。このフィールドには、FXMLLoaderは、公開または注釈付き@FXMLアノテーション。
  2. 追加しますfxml名前空間のid属性(おそらくプレフィックスを使用)fx)注入する必要があるfxmlファイルの要素に。その属性の値は、コントローラーのフィールドの名前です。

fxml

.......。

コントローラ

.... @ FXMLプライベートTextFieldmyTextField; ...。

NSFXMLLoaderはこの情報を使用して、そのfxml要素用に作成したオブジェクトをコントローラーの前のフィールドに割り当てます。初期化メソッドが呼び出されます。

インジェクションを含む完全な例/拡張チュートリアルは、https://docs.oracle.com/javase/8/javafx/fxml-tutorial/fxml_tutorial_intermediate.htm#JFXMG153にあります。


これは古い質問ですが、抽象的に答えられます。 「ノードとは何ですか?」および「ノードとは何かを理解するには、最初にシーングラフとは何かを理解する必要があります」。ノードは、GUIにグラフィカルに表示されるほぼすべてのものが派生する最高レベルの抽象クラスです。そのスーパークラスはObjectです。 Ojonugwa Ochalifuによって表示された画像には、他のノードを含む複数のノードを含む1つのシーンを含む1つのステージがあります。 GUIの画像は、「これはどのように作成されますか?」という疑問を投げかけます。

一般的な理解のために、ここにStage、Scene、およびEventTargetのJavaDocがあります。
javafxdocステージhttps://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage.html

およびシーンhttps://docs.oracle.com/javase/8/javafx/api/javafx/scene/Scene.html

StageとSceneはどちらも、同じインターフェイス、EventTarget、Pane、Control、およびクラスの長いリストを継承します。 https://docs.oracle.com/javase/8/javafx/api/javafx/event/EventTarget.html

また、使用しているクラスのソースコードを確認することをお勧めします。これは、ノードから継承するクラスの動作に関する洞察を提供するのに役立ちます。たとえば、JavaFXのドキュメントには、画像の表示時にバグが存在する可能性があると記載されています。このバグがUIで発生しないことを確認するには、徹底的なテストが必要です。マルチスレッド技術を使用してグラフにアクセスする方法などの他の洞察には、クラスが使用する「方法」と「何」を理解する必要があります。

シーングラフはステージに含まれ、ノードの任意のサブクラスで構成されます。ペインなどの一部のノードには子がある場合があります。子はまだノードです。子は、子を持つ可能性のある他のノードを含む可能性のある構造に含まれています。したがって、グラフは多次元配列または非二分木によく似ています。また、次のことを理解することも重要です。シーングラフは無向グラフであり、子がその親にアクセスできることを意味します。子供は1人の親しか持つことができません。しかし、子供は無制限に持つことができます。 getParent()メソッドは、ノードの親へのアクセスを提供します。

シーングラフの画像

基本的に、グラフ構造は多次元配列であることに注意してください。つまり、ノードから継承するアイテムの他の配列、またはImageViews、Buttonsなどのノードのいずれかを含む可能性のある配列。ノードのような配列は、他のノードを含む可能性のあるペイン、キャンバスなどです。

これは、テストの自動化に関して理解し、UIが表示すべき内容を確実に表示していることを確認するために重要です。

JavaFXを使い始めるのに適した本は、KishoriSharanによる「LearnJavaFX8」です。 https://www.amazon.com/Learn-JavaFX-Building-Experience-Interfaces/dp/148421143X/ref=asc_df_148421143X/?tag=bingshoppinga-20&linkCode=df0&hvadid= {creative}&hvpos = {adposition}&hvnetrandw = { oランダム}&hvpone =&hvptwo =&hvqmt = e&hvdev = c&hvdvcmdl = {devicemodel}&hvlocint =&hvlocphy =&hvtargid = pla-4584413736126928&psc = 1