質問編集履歴

5

試したこと追記

2016/05/17 16:24

投稿

tact
tact

スコア12

test CHANGED
File without changes
test CHANGED
@@ -242,12 +242,34 @@
242
242
 
243
243
 
244
244
 
245
+ ###試したこと③
246
+
247
+ 回答者様の指摘を受け色々試しましたがうまく実行出来ませんでした。
248
+
249
+ 本件の前段階として、GUI表示ではなくCUI上にてテキストを出力するソースを書いておりそれと照らし合わせ順に変更箇所を追加して実行しました。
250
+
251
+
252
+
253
+ ■結果
254
+
255
+ [view1.java]にて、[view1]メソッドに[praivate void]と先頭に追加した所正常に実行できました。
256
+
257
+
258
+
259
+ ■推測
260
+
261
+ 公的になっていた[view1]コンストラクターが[getConstructor]を実行した為、初期化されてしまったものと思います。
262
+
263
+ 間違っておりましたらご指摘ください。
264
+
245
265
 
246
266
 
247
267
 
248
268
 
249
269
  ###補足情報(言語/FW/ツール等のバージョンなど)
250
270
 
271
+ ■正常に実行できたソースは解答欄に記入致します。
272
+
251
273
 
252
274
 
253
275
  ■使用言語

4

2016/05/17 16:24

投稿

tact
tact

スコア12

test CHANGED
File without changes
test CHANGED
@@ -68,7 +68,7 @@
68
68
 
69
69
  Class<?> clzz = Class.forName(paTh);
70
70
 
71
- Method mthd = clzz.getMethod("vhoge");
71
+ Method mthd = clzz.getMethod("hoge");
72
72
 
73
73
  mthd.invoke(clzz.newInstance());
74
74
 
@@ -148,13 +148,7 @@
148
148
 
149
149
 
150
150
 
151
- public static hoge(){
151
+
152
-
153
-
154
-
155
- }
156
-
157
- }
158
152
 
159
153
  public class view1 extends JFrame{
160
154
 
@@ -202,7 +196,7 @@
202
196
 
203
197
  Constructor<?> cnst = clzz.getConstructor(new Class<?>[?]);
204
198
 
205
- Method mthd = clzz.getMethod("vhoge");
199
+ Method mthd = clzz.getMethod("hoge");
206
200
 
207
201
  mthd.invoke(cnst.newInstance());
208
202
 

3

試したこと追記

2016/05/17 11:14

投稿

tact
tact

スコア12

test CHANGED
File without changes
test CHANGED
@@ -190,6 +190,8 @@
190
190
 
191
191
  ###試したこと①
192
192
 
193
+ takasima20様から教えて頂いたURLを元に
194
+
193
195
  /*** ***/内を以下の様に書き換えました
194
196
 
195
197
  ■ソース

2

試したこと追記

2016/05/15 01:10

投稿

tact
tact

スコア12

test CHANGED
File without changes
test CHANGED
@@ -60,6 +60,10 @@
60
60
 
61
61
  String paTh = prtys.getProperty("view1pah");
62
62
 
63
+
64
+
65
+ /***以下を書き換える
66
+
63
67
  try{
64
68
 
65
69
  Class<?> clzz = Class.forName(paTh);
@@ -72,7 +76,9 @@
72
76
 
73
77
  e2.printStackTrace();
74
78
 
75
- }
79
+ }
80
+
81
+ 以上まで書き換える***/
76
82
 
77
83
 
78
84
 
@@ -174,7 +180,7 @@
174
180
 
175
181
  ■[cnfg.ini]///////////////////////////////////////////////////
176
182
 
177
- view1pah=pre.lay.view1.java
183
+ view1pah=pre.lay.view1
178
184
 
179
185
 
180
186
 
@@ -182,6 +188,68 @@
182
188
 
183
189
 
184
190
 
191
+ ###試したこと①
192
+
193
+ /*** ***/内を以下の様に書き換えました
194
+
195
+ ■ソース
196
+
197
+ try{
198
+
199
+ Class<?> clzz = Class.forName(paTh);
200
+
201
+ Constructor<?> cnst = clzz.getConstructor(new Class<?>[?]);
202
+
203
+ Method mthd = clzz.getMethod("vhoge");
204
+
205
+ mthd.invoke(cnst.newInstance());
206
+
207
+ } catch(ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e2){
208
+
209
+ e2.printStackTrace();
210
+
211
+ }
212
+
213
+
214
+
215
+ ■結果
216
+
217
+ コンパイルは正常に終了し、実行した所以下のエラーが出力されました
218
+
219
+ java.lang.NoSuchMethodException: pre.lay.view1.<init>()
220
+
221
+
222
+
223
+ また、大量に view1にてimportしているパッケージが見つからないというエラーも出力されています。
224
+
225
+
226
+
227
+ ###試したこと②
228
+
229
+ 試したこと①の結果を元に対象のクラスが参照できていないと推測し、以下の箇所にて、[System.out.println]にて確認した。
230
+
231
+
232
+
233
+ ■確認箇所①
234
+
235
+ Class<?> clzz = Class.forName(paTh);
236
+
237
+ 結果->期待値である[pre.lay.view1]が出力された。
238
+
239
+
240
+
241
+ ■確認場所②
242
+
243
+ Constructor<?> cnst = clzz.getConstructor(new Class<?>[?]);
244
+
245
+ 結果->試したこと①にて発生したエラーが出力された。
246
+
247
+
248
+
249
+
250
+
251
+
252
+
185
253
  ###補足情報(言語/FW/ツール等のバージョンなど)
186
254
 
187
255
 

1

タイトルの修正

2016/05/15 01:09

投稿

tact
tact

スコア12

test CHANGED
@@ -1 +1 @@
1
- 文字列格納変数からJFrame型を継承するクラス名を取得し特定の名称のメソッドを実行したい
1
+ 文字列格納する変数からJFrame型を継承するクラス名を取得し特定の名称のメソッドを実行したい
test CHANGED
File without changes