質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

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

Q&A

1回答

789閲覧

javafxにて、実行後のエラー

zaki777oka

総合スコア31

JavaFX

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

0グッド

0クリップ

投稿2021/05/31 06:04

編集2021/05/31 15:59

前提・実現したいこと

javafxで、チェックボタンを押すとラベルに画像が表示されるウインドウを作っています。
エラーを解決し、ちゃんと実行されるようにしたいです。

発生している問題・エラーメッセージ

コードにエラーは発生していないのですが、実行すると以下のエラーが出てきます。画像の問題かなと自分では思っています。

エラーメッセージ 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 lesson4.SampleP2.start(SampleP2.java:29) 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 lesson4.SampleP2 ### 該当のソースコード package lesson4; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class SampleP2 extends Application { private Label lb; private CheckBox ch; private Image im; private ImageView iv; public static void main(String[] args) { launch(args); } public void start(Stage stage)throws Exception { Label lb = new Label("This is me"); CheckBox ch = new CheckBox("画像の表示"); im = new Image(getClass().getResourceAsStream("file:///C:/Users/USER/Pictures/1414406%20.jpg")); iv = new ImageView(im); lb.setGraphic(new ImageView(im)); BorderPane bp = new BorderPane(); bp.setCenter(lb); bp.setBottom(ch); lb.setAlignment(Pos.CENTER); bp.setCenter(lb); //イベントハンドラの登録 ch.setOnAction(new SampleEventHandler()); Scene sc =new Scene(bp,500,500); stage.setScene(sc); stage.setTitle("サンプル"); stage.show(); } class SampleEventHandler implements EventHandler<ActionEvent> { public void handle(ActionEvent e) { CheckBox tmp = (CheckBox)e.getSource(); if(tmp.isSelected() == true) { lb.setGraphic(iv); } else if(tmp.isSelected() == false) { lb.setGraphic(null); } } // TODO 自動生成されたメソッド・スタブ } } ```ここに言語名を入力 ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

簡単な質問の可能性が高いため、マルチポストをします。

https://ja.stackoverflow.com/questions/76226

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

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 lesson4.SampleP2.start(SampleP2.java:29)

とあるのでSampleP2のjava:29行名を見る。

im = new Image(getClass().getResourceAsStream("file:///C:/Users/USER/Pictures/1414406%20.jpg"));

画像の指定が間違っているような気がします。
SampleP2.javaと同じ場所にファイル画像ファイルを置き

im = new Image(getClass().getResourceAsStream("1414406%20.jpg"));

としてみて動きを確認してみてください。

投稿2021/07/16 04:33

ababa_Sigrun

総合スコア279

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問