回答編集履歴
2
追記
answer
CHANGED
@@ -4,4 +4,30 @@
|
|
4
4
|
|
5
5
|
<TextArea `fx:id="txtA"` layoutY="48.0" prefHeight="352.0" prefWidth="600.0">
|
6
6
|
|
7
|
-
FXMLLoaderはfx:id属性が付与されたノードのインスタンスをみつけると、「コントローラーにある@FXMLアノテーションが付与されていてfx:idの属性値(txtA)と同じ名前のフィールドへ設定する」という具合に動いてくれるのです。
|
7
|
+
FXMLLoaderはfx:id属性が付与されたノードのインスタンスをみつけると、「コントローラーにある@FXMLアノテーションが付与されていてfx:idの属性値(txtA)と同じ名前のフィールドへ設定する」という具合に動いてくれるのです。
|
8
|
+
|
9
|
+
---
|
10
|
+
追記:
|
11
|
+
指摘できてなかった点がありましたので追記します。FXML上にコントローラークラスのクラス名が書いてあります。それはapplication.SampleControllerとなっていますが、ご質問のコードではtxtAというフィールドがコントローラーではなくアプリケーションクラスに書いてあります。
|
12
|
+
コントローラークラス上へtxtAを書いてください。コントローラークラスは次のように書きます。
|
13
|
+
|
14
|
+
```Java
|
15
|
+
package applicaton;
|
16
|
+
public class SampleController implements Initializable {
|
17
|
+
@FXML
|
18
|
+
TextArea txtA;
|
19
|
+
|
20
|
+
// FXMLLoaderがFXMLをロードする際にこのクラスのインスタンスを生成します。
|
21
|
+
// ロードが完了し、@FXMLアノテーションを付与したフィールドへの設定が完了すると
|
22
|
+
// 以下のメソッドが自動的に呼ばれますのでここでさらに必要な初期化などが行えます。
|
23
|
+
// (FXML上に書ききれないような追加の初期化)
|
24
|
+
@Override
|
25
|
+
void initialize(...) {
|
26
|
+
コントローラーの初期化
|
27
|
+
}
|
28
|
+
|
29
|
+
...
|
30
|
+
}
|
31
|
+
```
|
32
|
+
|
33
|
+
このあたりはFXMLを用いたJavaFXの起動処理のお約束ですので一通りチュートリアルをやってみることをお勧めします。ネット上には古い仕様(JavaFXにスクリプトを用いていた時代のもの)があったりしますので本家本元のOracleのチュートリアルや新しい日付の記事を選んで参照することをお勧めします。
|
1
説明文を訂正
answer
CHANGED
@@ -4,4 +4,4 @@
|
|
4
4
|
|
5
5
|
<TextArea `fx:id="txtA"` layoutY="48.0" prefHeight="352.0" prefWidth="600.0">
|
6
6
|
|
7
|
-
FXMLLoaderはfx:id属性の
|
7
|
+
FXMLLoaderはfx:id属性が付与されたノードのインスタンスをみつけると、「コントローラーにある@FXMLアノテーションが付与されていてfx:idの属性値(txtA)と同じ名前のフィールドへ設定する」という具合に動いてくれるのです。
|