[解決済み] JavaFX FXMLコントローラ - コンストラクタ vs. 初期化メソッド
2022-02-18 23:14:08
質問
私の
Application
クラスは次のようになります。
public class Test extends Application {
private static Logger logger = LogManager.getRootLogger();
@Override
public void start(Stage primaryStage) throws Exception {
String resourcePath = "/resources/fxml/MainView.fxml";
URL location = getClass().getResource(resourcePath);
FXMLLoader fxmlLoader = new FXMLLoader(location);
Scene scene = new Scene(fxmlLoader.load(), 500, 500);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
があります。
FXMLLoader
で指定した)対応するコントローラのインスタンスを作成します。
FXML
ファイルビュア
fx:controller
) を呼び出すと、まずデフォルトのコンストラクタを起動し、次に
initialize
メソッドを使用します。
public class MainViewController {
public MainViewController() {
System.out.println("first");
}
@FXML
public void initialize() {
System.out.println("second");
}
}
と出力されます。
first
second
では、なぜ
initialize
メソッドは存在しますか?コンストラクタを使用する場合と
initialize
メソッドを使って、コントローラに必要なものを初期化することはできますか?
ご指摘ありがとうございます。
解決方法は?
一言で言えば コンストラクタが最初に呼び出され、次に任意の
@FXML
アノテーションされたフィールドに入力され、次に
initialize()
が呼び出される。
これは、コンストラクタが
ない
にアクセスすることができます。
@FXML
フィールドは、.fxml ファイルで定義されたコンポーネントを参照しています。
initialize()
が行います。
がアクセスできるようになりました。
から引用しています。 FXML入門 :
[...] コントローラは initialize() メソッドを定義することができます。これは、関連するドキュメントのコンテンツが完全に読み込まれたときに、実装するコントローラ上で一度呼ばれます [...] これにより、実装クラスはコンテンツに対して必要なあらゆる後処理を行うことができます。
関連
-
[解決済み】エラー。Selection does not contain a main type
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み】Java: GZIPInputStreamの作成に失敗しました。GZIP形式ではありません
-
[解決済み】フォルダに書き込もうとすると「java.nio.file.AccessDeniedException」が発生する件
-
[解決済み] Java で、あるコンストラクタを別のコンストラクタから呼び出すにはどうすればよいですか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
-
[解決済み] HashMapを直接(リテラルに)初期化する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】popBackStack()とreplace()の操作はどう違うのですか?
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み] 二項演算子「&」のオペランド型がおかしい java
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】ソースルート外のJavaファイル intelliJ
-
[解決済み] "java.nio.charset.MalformedInputException" を避けるために、すべての包括的なCharset。入力の長さ= 1"?