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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

2回答

1703閲覧

アプレットでの画像参照

reotantan

総合スコア295

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/10/22 22:48

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); } }

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

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

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

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

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

argius

2015/10/22 23:49

catch (IOException e)のところは、eを無視していますね。catchの最初はe.printStackTrace()を書いて、エラーの詳細を出してみてください。あと、実行時の画像ファイルのフォルダー構成はどうなっていますか?実行はEclipseですか?
reotantan

2015/10/23 09:31

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)
reotantan

2015/10/23 09:31

iconsの中に画像が入っていて、icons/imge~というように参照しています
argius

2015/10/23 09:57 編集

情報の追加、ありがとうございます。 アプレットで実行した場合は、ローカルファイルにはアクセスできません。 ipadcaronさんの回答が参考になると思います。
guest

回答2

0

http://home.a00.itscom.net/hatada/japplet/intro01.html
これですかね。

icons フォルダを applet タグプロパティ codebase に指定する必要があるらしいですね。

投稿2015/10/23 01:56

ipadcaron

総合スコア1693

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

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

0

Jpanelでは実行中のカレントディレクトリが通常と違う位置にあって参照できないのではないでしょうか。

もしくは画像フォルダをsrc内に直接配置してるとか。コンパイル後はbin内のclassファイルを読みに行くので、画像配置もbin内でないといけません。

ところで、以下のようにimageiconクラスで画像オブジェクトを生成するのが普通みたいですが、試されましたか?

参考:
画像を表示
http://www.javadrive.jp/tutorial/jlabel/index6.html

投稿2015/10/22 23:49

SKYYFISH

総合スコア654

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問