🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

1200閲覧

Question の型が反映されない原因を知りたいです・・・

nakagen

総合スコア24

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2021/01/11 09:38

前提・実現したいこと

・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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TN8001

2021/01/11 10:12

>Questionの型が存在しないとエラーメッセージが出てしまいました class Questionがどこにもないんじゃないですかね。 >自分で作成した場所では、問題なく作動出来たのですが、このコードをダウンロードで取得するとQuestionの部分で、エラーメッセージが発生してしまいました・・・ どういう意味か全く分かりません。 前回までの回答やコメントを注意深く読んでいただきたいのですが、 Question.javaを作って [Eclipse - 診断機能の仕上げをしたい|teratail](https://teratail.com/questions/314155 の class Question を入れてください。
neko_the_shadow

2021/01/11 15:19 編集

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) エラーログのこの部分を見る限りでは、kadai.Testクラスの160行目、startメソッドの中でエラーが発生しているようです。 これは推測になりますが、kadai.Testクラスの160行目ではjavafx.scene.image.Imageクラスの初期化を行っており、 InputStreamから画像を読み込もうとしていませんか? 1. kadai.Testクラスの160行にはどのような処理がありますか? この部分のソースコードが見れると問題解決が早まります。 2. 問題が発生している環境で、対象の画像は存在していますでしょうか?
nakagen

2021/01/12 10:00

TN8001さん、アドバイスをありがとうございます。試しに入れてみたところ、このようなエラーメッセージが発生してしまいました・・・ ーーーー 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 saisyuukadai.date1.start(date1.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 saisyuukadai.date1 ーーーーー
nakagen

2021/01/12 10:03

nekoさん ご回答ありがとうございます。 160行には、 Image im =newImage(getClass().getResourceAsStream("top.jpeg")); といったコードがあります また、指定されている写真は存在しているのですが・・・
neko_the_shadow

2021/01/14 10:25

そのコードとエラー内容を見る限りでは、クラスパス上にあるtop.jpegを読み込もうとして失敗しているようです。一般にクラスパス関連の問題は環境や設定に依存していることが多いです。エラーが発生する場合としない場合で、実行方法やプロジェクト構成に差分はないでしょうか?
guest

回答1

0

自己解決

class Question の配置を忘れていました・・・

投稿2021/02/06 10:31

nakagen

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問