2009-12-30 9 views
8

В моем проекте у меня есть 2 пакета. изображения - содержат изображения и уведомление - содержат Java-файлыПолучить изображение с относительного пути

В уведомлении/main.java Я получаю изображение объекта из изображения, используя этот код

Image image = Toolkit.getDefaultToolkit().getImage("/images/key-16x16.png"); 

, и я не могу получить изображение.

Как исправить эту ошибку.

ответ

17

Я использую Netbeans для разработки настольных приложений Java и я решил мою проблему.

Image image = new ImageIcon(this.getClass().getResource("/images/bell-icon16.png")).getImage(); 

«этот» класс расширяет JFrame

+0

ImageIcon(). getImage() - хорошее решение! работает и для меня, используя Windows 64bit. : D – gumuruh

7

/ означает абсолютный путь, сохраняя веб-приложения Java, где / означает относительно контекста. Поэтому я бы предложил использовать относительный URL-адрес, чтобы избавиться от этого / спереди, а затем предоставить правильный путь.

В случае, даже если вы не можете его решить, попробуйте создать файл на том же пути, который вы ищете. Таким образом, вы узнаете, где вы смотрите точно и где вы должны смотреть.

+0

Я не мог выясните мою проблему в течение двух часов ... спасибо – DGund

1

Вы также можете попробовать

Image image = new ImageIcon(path).getImage(); 
1

я также был на этом и получается, что вам нужно, чтобы создать пакет в вашей папке Src. для создания пакета, называемого изображениями внутри папки src, ваш относительный путь будет /images/yourimage.png.

Обратите внимание, что косая черта (/) должна быть там! подробнее здесь http://forums.macrumors.com/showthread.php?t=533922

он работал для меня

1
Toolkit tk = Toolkit.getDefaultToolkit(); 
Class<? extends JFrame> j = YOURJFRAME.getClass(); 
Image image = tk.createImage(j.getResource("/images/bell-icon16.png")); 

Попробуйте этот код, если у вас есть JFrame, который будет работать. Если у вас есть апплет, а затем просто использовать

Toolkit tk = Toolkit.getDefaultToolkit(); 
Image image = tk.createImage("images/bell-icon16.png"); 

апплетов вы никогда не хотите использовать/в начале, но если у вас есть JFrame, и вы используете getResource, вы нуждаетесь в/в начале Пути.

+0

для этого, я пробовал внутри netbeans, он работает.Но как только я упакую приложение в установщик внешнего пакета, кажется, что ссылка не работает должным образом. :(не знаю почему. – gumuruh

+0

@gumuruh какой установщик приложений? Возможно, я не смогу помочь, но то, что он делает, вероятно, изменит то, что вам нужно сделать. – daboross

+0

nevermind 'DaboRoss, coz Я уже следую решениям @ChanPye выше, и это работает.: D app installer, что я написал в прошлый раз, является Advanced Installer.: D – gumuruh

0
SwingResourceManager.getImage(YourClass.class,"key-16x16.png"); 

Метод getIcon вернет икону, как аналогичный

1

Incase выше решение не работает, попробуйте это (который работал для меня):

Image image = Toolkit.getDefaultToolkit().createImage(this.getClass().getResource("/Images/bell-icon16.png")); 
0
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("../resources/MainIcon.png"))); 
Смежные вопросы