回答編集履歴

2

追記2

2017/10/17 10:38

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,4 +1,4 @@
1
- 追記:
1
+ 追記1
2
2
 
3
3
  ご質問の内容とコードが不一致になっている(FXML上がGood Moringになっている)ことに気づけなかったため指摘しそこねました。改めて指摘します。
4
4
 
@@ -13,6 +13,44 @@
13
13
  - FXMLの場所がおかしい
14
14
 
15
15
  上記の指摘を直していて気付きましたがコントローラークラスを指定しても実行時にクラスを見つけられません。原因はFXMLの置き場所の問題だと思います。FXMLファイルのURLを`getClass().getResource(...)`で求めていますので、少なくともsrcフォルダー以下に配置するのが妥当と思います。それより上の階層に置くと、例えばjarにパッケージングした際にjarのトップ階層より上の階層を指定することになり不合理だと思います。
16
+
17
+
18
+
19
+ 追記2:
20
+
21
+ 上の記述だけでは少々わかりにくいかも知れないので具体的な修正方法を述べます。
22
+
23
+
24
+
25
+ (A) フォルダー階層を変更
26
+
27
+ たとえば以下のようにしてください。
28
+
29
+ ```
30
+
31
+ src
32
+
33
+ +-- sample3
34
+
35
+ +- Sample3.java
36
+
37
+ +-- fxml
38
+
39
+ +- sample3.fxml
40
+
41
+ ```
42
+
43
+ load時のコードも`load(getClass().getResource("../fxml/sample3.fxml"));`に変更するのをお忘れなく。(IDEによっては自動修正されますがEclipse Marsでは修正されなかったと思いますので念のため)
44
+
45
+
46
+
47
+ (B) FXMLの変更
48
+
49
+ シーンビルダーを起動し、左側のアコーディオンのControllerの項目(一番下にあります)を開き、"Controller class"に"sample3.Sample3"と入力しSaveしてください。Scene Builderのバグのため、この修正をしただけだとSaveされないかも知れません。その場合はさらにどれかのNodeのプロパティーを変更した後にSaveしてみてください)。
50
+
51
+ FXMLファイル内のVBoxの属性として以下が追加されていればOKです。
52
+
53
+ `fx:controller="sample3.Sample3"`
16
54
 
17
55
 
18
56
 

1

追記

2017/10/17 10:38

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -1,3 +1,27 @@
1
+ 追記:
2
+
3
+ ご質問の内容とコードが不一致になっている(FXML上がGood Moringになっている)ことに気づけなかったため指摘しそこねました。改めて指摘します。
4
+
5
+
6
+
7
+ - FXML上にコントローラークラスの指定が抜けている
8
+
9
+ コントローラークラスの指定がないため、コントローラインスタンスが生成されることもなく、initializeメソッドも当然呼び出されません。画面上にはシーンビルダーで設定した状態そのまましか表示されてなかったわけです。
10
+
11
+
12
+
13
+ - FXMLの場所がおかしい
14
+
15
+ 上記の指摘を直していて気付きましたがコントローラークラスを指定しても実行時にクラスを見つけられません。原因はFXMLの置き場所の問題だと思います。FXMLファイルのURLを`getClass().getResource(...)`で求めていますので、少なくともsrcフォルダー以下に配置するのが妥当と思います。それより上の階層に置くと、例えばjarにパッケージングした際にjarのトップ階層より上の階層を指定することになり不合理だと思います。
16
+
17
+
18
+
19
+
20
+
21
+ 以下元の回答
22
+
23
+ ---
24
+
1
25
  上記コードで実行してみましたが、一応Good Morningと初期表示されます。
2
26
 
3
27
  提示しているコードは最新でしょうか?よくお確かめください。
@@ -8,7 +32,7 @@
8
32
 
9
33
  ---
10
34
 
11
- 本件の問題とは関係ありませんが、コメントを少し
35
+ 本件の問題とは直接関係ありませんが、コメントを少し
12
36
 
13
37
 
14
38