1

画像を表示するために使用したコードJGraspが Netbeans で機能しない

私が使用したコードJGrasp

final ImageIcon icon1 = new ImageIcon("image/money.gif");
JOptionPane.showMessageDialog(null, " blah blah", "Text",
   JOptionPane.INFORMATION_MESSAGE,   icon1);

で画像を表示したい場合JOptionPane.showInputDialog、 についても同じJOptionPane.showMessageDialogでしょうか?

どんな助けでも大歓迎です!

編集:これを行うと場所が問題になるとは思わない

menuPic = new javax.swing.JButton();
menuPic.setIcon(new javax.swing.ImageIcon(
    getClass().getResource("image/money.gif")));

画像は問題なく表示されますが、に画像を追加しようとすると、JOptionPane何も表示されません。

4

1 に答える 1

4

これは前の質問とまったく同じ問題ですが、逆になっています。重要なのは、画像ファイルがどこにあるかです。そして、これの鍵は、以前はResourceとして取得していた画像をFileとして取得するようになり、Java はこれらの 2 つの異なる場所を検索することです。

ここで、ファイルはユーザー ディレクトリから離れたイメージ サブディレクトリにある必要があります。を呼び出すことで、ユーザーディレクトリを取得できます

System.out.println(System.getProperty("user.dir"));

ユーザー ディレクトリを取得したら、"/image/money.gif" を追加します。これがイメージファイルへのパスです (前の例のようにリソースではありません)。

編集
コメントについて:

場所が問題だとは思わない

menuPic = new javax.swing.JButton(); menuPic.setIcon(new javax.swing.ImageIcon(getClass().getResource("image/money.gif")));

画像は正常に表示されますが、joptionpane に画像を追加しようとすると何も表示されません

もちろん、それが私がずっと言おうとしていることです。この 2 番目の例では、画像をファイルではなくリソースとして取得しているため、Java が jpg ファイルを探す場所が 大きく異なります。

JOptionPane で画像をリソースとして探した場合、jpg リソースの場所がわかっているので問題なく動作します。つまり、これはおそらくうまくいくでしょう:

// final ImageIcon icon1 = new ImageIcon("image/money.gif");
final ImageIcon icon1 = new javax.swing.ImageIcon(getClass().getResource("image/money.gif"))
JOptionPane.showMessageDialog(null, " blah blah", "Text",
   JOptionPane.INFORMATION_MESSAGE,   icon1);

それでも、イメージをファイルとして見つけたい場合は、これが必要な場合もあります。上記で提案したように、最初に user.dir を見つける必要があります。

于 2012-07-01T05:36:57.277 に答える