1. ホーム
  2. java

[解決済み] Java FXのApplicationとSceneとParentの関係は?

2022-02-16 15:12:53

質問

チュートリアルを見たところ、各Java FXは複数のシーンを保持するアプリケーションを持つ必要があるようです。各シーンは基本的にFXMLファイルのためのホルダーです(またはハードコードで記述することができます)。

しかし、シーンを切り替えようとすると、ウィンドウを最大化したままにしておくと問題が発生するんです。

最終的に役に立ったのはこれ Java FXでシーンを切り替えてもウィンドウサイズを維持するにはどうしたらいいですか?

そこで質問ですが、基本的にアプリケーション、シーン、親の関係はどうなっているのでしょうか?

FXMLファイルごとにSceneを用意するのか、それともSceneを1つだけ用意して、Parentノードを置き換えるだけでいいのでしょうか?

ありがとうございます。

解決方法は?

アプリケーション : あなたのための環境を作成する単一のインスタンスです。このインスタンスは primaryStage を実行し、javafx uiスレッドを起動します。

ステージ : ウィンドウです。いくつでも Stages を好きなように設定できます。 Application を提供します。 Stage の中に start メソッドと比較して、いくつかの特別なプロパティを持っています。 Stages .

シーン : すべての Stage には、ちょうど1つの Scene を一度に表示します。 Scenes は交換可能ですが、交換はお勧めしません。を入れ替える方がよいでしょう。 rootScene .

: シンプルな Node を保持することができ、他の Nodes を子として持つ。すべての Scene は、ちょうど1つの Parent として root .

FXMLです。上記とは一切関係ありません。

1つのFXMLファイルは、単に階層を記述するものであり、その階層は Node (の取得するルートノード)。 FXMLLoader ) とその子です。FXMLファイルには、1つの Button またはルート NodeScene とそのすべての子 FXMLは1つの Scene .

必要であれば、FXMLファイルに LabelTextfield の中に GridPane (標準的な入力フォームのようなもの) を作成し、この配置がどこかで必要になるたびに (何度でも、1つの Scene でも) 読み込むようにします。