将Icon添加到JFrame时出现问题

时间:2011-07-20 06:49:05

标签: java swing icons jframe imageicon

我尝试了几种方法将图标添加到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); 
}

我试过这个,但现在我得到一个空指针异常。

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

编辑[解决方案]:我找到了解决方案。

我在路径中添加了../,它完美无缺! :d

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

感谢大家帮助我。 :)

1 个答案:

答案 0 :(得分:4)

您应该使用网址。像这样:

 /**
  * 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;
    }