前提・実現したいこと
・Questionの型が存在しないとエラーメッセージが出てしまいました
・自分で作成した場所では、問題なく作動出来たのですが、このコードをダウンロードで取得するとQuestionの部分で、エラーメッセージが発生してしまいました・・・
エラーの改善方法を教えて頂くことはできないでしょうか・・・?
発生している問題・エラーメッセージ
Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException: Input stream must not be null at javafx.scene.image.Image.validateInputStream(Image.java:1128) at javafx.scene.image.Image.<init>(Image.java:706) at kadai.Test.start(Test.java:160) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) ... 1 more Exception running application kadai.Test
該当のソースコード
javafx
1 class seEventHandler implements EventHandler<ActionEvent> { 2 private Question[] questions; 3 private Question current; 4 public void handle(ActionEvent event) { 5 Stage stage = new Stage(); 6 BorderPane root = new BorderPane(); 7 root.setPadding(new Insets(10, 10, 10, 10)); 8 stage.setScene(new Scene(root, 600, 400)); 9 10 lb = new Label(); 11 lb2.setTextAlignment(TextAlignment.CENTER); // 12 lb3.setWrapText(true); // 折り返し 13 root.setCenter(lb); 14 15 bt1 = new Button(); 16 bt2 = new Button(); 17 18 // 質問の選択によってジャンプ先を変更 19 bt1.setOnAction(ae -> jump(current.Jump1)); 20 bt2.setOnAction(ae -> jump(current.Jump2)); 21 22 VBox box = new VBox(10, bt1, bt2); 23 box.setAlignment(Pos.CENTER); 24 root.setBottom(box); 25 26 try { 27 createCSV(); 28 loadCSV(); 29 } catch (IOException e) { 30 e.printStackTrace(); 31 } 32 33 jump(0); // 最初は先頭の質問 34 35 stage.show(); 36} 37 38 private void jump(int index) { 39 current = questions[index]; // 現在の質問を指定インデックスの質問に変更 40 41 42 if (current.Choice1 == null) { 43// ((Stage) button1.getScene().getWindow()).close(); // このStageを閉じるなら 44 45 Stage stage = new Stage(); 46 stage.setScene(new Scene(new Label(current.Text), 400, 300)); 47 stage.show(); 48 } else { 49 lb.setText(current.Text); 50 bt1.setText(current.Choice1); 51 bt2.setText(current.Choice2); 52 } 53 } 54 55 56private void loadCSV() throws IOException { 57 List<String> lines = Files.readAllLines(Paths.get("test.csv"), StandardCharsets.UTF_8); 58 59 questions = new Question[lines.size() - 1]; 60 for (int i = 1; i < lines.size(); i++) { 61 questions[i - 1] = new Question(lines.get(i)); 62 } 63} 64
試したこと
教科書や知人に読んだり聞いたりしてみると、恐らく「Questionのクラスが設定されていない」という予測に至ったのですが・・・
補足情報(FW/ツールのバージョンなど)
jdk14
回答1件
あなたの回答
tips
プレビュー