3

Newsaveなどのアクションを説明するためにに追加ImageIconしたいと思います。 次のコードが機能しないのはなぜですか? JMenuItem

   JMenu file = new JMenu("File");
   menubar.add(file);
   JMenuItem newgame = new JMenuItem("New");
   file.add(newgame);
   newgame.setIcon(new ImageIcon("/Project1/zkre/new.gif"));
4

4 に答える 4

5

Imagejarファイルにパッケージ化されたコードの外観により、次のようにjarファイルから抽出するgetResourceAsStream(..)か、使用する必要がありますgetResource(..) (例外処理は省略されています):

ImageIcon imageIcon=new ImageIcon(ImageIO.read(getClass().getResourceAsStream("/Project1/rawaz/new.gif")));

注意: ファイル名とそのパスの大文字と小文字が正しいことを確認してください (Windows ファイル システムでは大文字と小文字が区別されませんが、jar 内のファイルは大文字と小文字が区別される JVM によって処理されるため)。

于 2012-11-12T17:54:47.543 に答える
4

正しい画像パスを取得しているかどうかを確認してください。

java.net.URL imageURL = this.getClass().getResource("YOUR_IMAGE_PATH");
System.out.println(imageURL); //imageURL is printing correctly in console
ImageIcon image = new ImageIcon(imageURL);
// now add the image to your menubar
于 2012-11-12T17:39:57.840 に答える