FXMLコントローラクラスへのアクセス
2023-08-29 10:55:31
質問
FXMLのコントローラクラスと随時通信し、メインアプリケーションや他のステージから画面上の情報を更新したいのですが。
これは可能でしょうか? どのような方法も見つかっていません。
静的関数は一つの方法ですが、フォームのコントロールにアクセスすることはできません。
何かアイデアはありますか?
どのように解決するのですか?
コントローラを
FXMLLoader
FXMLLoader fxmlLoader = new FXMLLoader();
Pane p = fxmlLoader.load(getClass().getResource("foo.fxml").openStream());
FooController fooController = (FooController) fxmlLoader.getController();
をメインステージに格納し、getFooController() ゲッターメソッドを提供します。
他のクラスやステージから、読み込まれた "foo.fxml" ページを更新する必要があるときは、毎回、そのコントローラから問い合わせます。
getFooController().updatePage(strData);
updatePage()は、こんな感じになります。
// ...
@FXML private Label lblData;
// ...
public void updatePage(String data){
lblData.setText(data);
}
// ...
を FooController クラスに追加します。
こうすることで、他のページ利用者はページの内部構造、例えば、何が、どこで
Label lblData
が何であるかというようなページの内部構造を気にすることはありません。
も見てください。
https://stackoverflow.com/a/10718683/682495
. JavaFX 2.2 では
FXMLLoader
は改善されています。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン