Проблема с добавлением Icon в JFrame - PullRequest
0 голосов
/ 20 июля 2011

Я пробовал несколько способов добавить Icon в JFrame. Каждый метод отлично работает, когда я запускаю его с использованием исходного кода.

например:

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

Но ни один из них не работает, когда я запускаю его, используя файл jar. Я знаю, что проблема с путем к файлу изображения. Как я могу решить это?

Edit:

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 Ответ

4 голосов
/ 20 июля 2011

Вы должны использовать 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;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...