2014-01-17 2 views
1

У меня есть значок изображения в моем Jframe. Я использую изображение в нем. Когда я экспортирую в Runnable Jar. Изображение не отображается.Как получить ресурсы, работающие в runnable jar?

String iPath = "res/images/Mobile.png"; 
JLayeredPane layeredPane = new JLayeredPane(); 
layeredPane.setBounds(0, 0, 315, 610); 
InputStream stream = (InputStream) getClass().getResourceAsStream(iPath); 
JLabel mobileImageLabel; 
mobileImageLabel = new JLabel(new ImageIcon(iPath)); 

      //mobileImageLabel = new JLabel(new ImageIcon(ImageIO.read(stream))); 
     // mobileImageLabel = new JLabel(new ImageIcon(AppFrame.class.getResource(iPath))); 

        mobileImageLabel.setBounds(0, 0, 315, 610); 
        mobileImageLabel.setVisible(true); 
        layeredPane.add(mobileImageLabel, Integer.valueOf(0)); 

Я гугле & нашел getResourceAsStream method.But, кажется, бросить NullPointerException.

Так помоги мне в правильном направлении :)

Спасибо за вашу помощь ...

Примечание Метод я Попробовал было комментируемые

+0

У меня тоже такая же проблема лучше попробовать метод getResourceAsStream в другой системе. – ashokramcse

+1

Откройте runnable.jar с помощью zip-приложения (f.e. 7-zip) и посмотрите, содержится ли файл в банке и в соответствующем каталоге. Часто неправильная настройка препятствует включению ресурса в банку. –

+0

См. [Тег: встроенный ресурс]. – trashgod

ответ

0

Чтобы установить изображение в кнопке Я сделал это:

JButton yourButton = new JButton("text button"); 
     try { 
      yourButton.setIcon(new ImageIcon(ImageIO.read(getClass().getResourceAsStream("/images/icon-for-your-button.png")))); 
     } catch (IOException e3) { 
      // TODO Auto-generated catch block 
      e3.printStackTrace(); 
     } 

У вас должны быть изображения в вашем проекте:

enter image description here

В вашем случае ответ, я думаю, чтобы сделать это:

new ImageIcon(ImageIO.read(getClass().getResourceAsStream("/images/icon-for-your-button.png"))) 
0

Попробуйте заменить

String iPath = "res/images/Mobile.png"; 

По

String iPath = "C:/..../res/images/Mobile.png"; 

Всякий раз, когда вы работа с ima ges пытаются поставить полный путь для изображения. Поэтому, когда вы создадите файл .jar и попытаетесь запустить его из разных мест (возможно, вы хотите, чтобы банка запускалась с рабочего стола), вы получите все изображения.

Смежные вопросы