import文は省略してあります。
画像を参照したいのですが、画像が見つかりませんとでてきます。
同じプロジェクト内で全く同じ写真を使っているのですが、
そちらでは普通に画像が使えます。
何が原因だかさっぱり分かりません、教えてください
コード public class MyPanel extends JPanel { BufferedImage m_bi; public MyPanel() { setBackground(Color.RED); JLabel jl = new JLabel("魔王が世界を滅ぼそうとしています"); jl.setFont(new Font(Font.MONOSPACED, Font.BOLD, 32)); jl.setForeground(Color.WHITE); add(jl); try { File file = new File("icons/img1-2.png"); // ファイルを開く m_bi = ImageIO.read(file); // 画像全体を読み込む }catch (IOException e) { System.out.println("画像が見つかりません"); } } protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.ORANGE); g.fillRect(200, 100, 500, 300); g.drawImage(m_bi, 250, 150, null); } }
catch (IOException e)のところは、eを無視していますね。catchの最初はe.printStackTrace()を書いて、エラーの詳細を出してみてください。あと、実行時の画像ファイルのフォルダー構成はどうなっていますか?実行はEclipseですか?
eclipseで実行していてbinの中にはhtmlファイルも入れてありますし、
binと同じ階層にiconsというファイルを設定してあります。
swingを使っていたときは普通にファイルを使えたのですが、何が問題なのかさっぱり分かりません
やっはろーわーるど
javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(ImageIO.java:1301)
at MyPanel.<init>(MyPanel.java:22)
at part58.init(part58.java:5)
at sun.applet.AppletPanel.run(AppletPanel.java:434)
at java.lang.Thread.run(Thread.java:745)
iconsの中に画像が入っていて、icons/imge~というように参照しています
情報の追加、ありがとうございます。
アプレットで実行した場合は、ローカルファイルにはアクセスできません。
ipadcaronさんの回答が参考になると思います。