0

JFrameにアイコンを追加するいくつかの方法を試しました。ソースコードを使用して実行すると、すべてのメソッドが完全に機能します。

例えば:

jframe.setIconImage(Toolkit.getDefaultToolkit().getImage("iconimages/icon.png"));

しかし、jarファイルを使用して実行すると、どれも機能しません。問題は画像ファイルのパスにあることはわかっています。どうすればこれを解決できますか?

編集:

public Ui() { 
   initComponents(); 
   setLocationRelativeTo(null); 
   this.setIconImage(getImageIcon("icon.png").getImage());
} 

private ImageIcon getImageIcon(String fileName) {
   String imageDirectory = "iconimages/"; 
   imgURL = getClass().getResource(imageDirectory + fileName); 
   return new ImageIcon(imgURL); 
}

これを試しましたが、nullポインタ例外が発生します。

--------------------------------------------------------------------------------

[解決策]を編集:解決策を見つけました。

パスに追加../しましたが、完全に機能します!!! :D

 ImageIcon imageIcon = new ImageIcon("../imageicons/icon.png");
 this.setIconImage(imageIcon.getImage());

私を助けてくれてありがとう。:)

4

1 に答える 1

4

URL を使用する必要があります。このような:

 /**
  * Loads and returns an {@link Image} resource. 
  * @param fileName name of the image resource.
  * @return Image as resource.
  */
  public Image getResourceImage(String fileName) {
      String imageDirectory = "images/";
      URL imgURL = getClass().getResource(imageDirectory + fileName);
      Image image = null;
      try {
         image = ImageIO.read(imgURL);
       } catch (IOException e) {}
      return image;
    }
于 2011-07-20T06:53:03.583 に答える