Кажется, здесь есть два вопроса:
Как заставить NetBeans включить файл изображения в банку, созданную при сборке проекта?
Как получить доступ к файлу изображения из банки?
Этот ответ относится к NetBeans 6.8 и касается обоих подзапросов.
Предположим, у вас есть проект приложения Java на основе муравьев.
Вот представление «Файлы» проекта
JP
+ images
+ test.jpg
+ nbproject
+ src
+ jp
+ Main.java
+ test
+ build.xml
+ manifest.mf
Внутри Main.java у вас есть такой код:
public static void main(String[] args) throws IOException {
// find the file in the file system.. probably not a good idea
File f = new File("images/test.jpg");
System.out.println(f.getCanonicalPath()+" "+f.exists());
Когда вы запускаете этот проект из NB, вы получаете такой вывод:
/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true
Когда вы запускаете код, упакованный в банку, вы получаете что-то вроде этого:
bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.txt false
Чтобы получить что-то лучшее, когда исполняется банка, вам нужно сделать следующее:
Добавить каталог изображений в качестве исходного корня для вашего проекта .
Щелкните правой кнопкой мыши по проекту и выберите пункт «Свойства». Появится диалоговое окно.
Выберите «Источники» в списке, который находится в левой части диалога. Это изменит содержимое панели в правой части диалога.
Нажмите кнопку «Добавить папку ...», которая появляется рядом с таблицей «Папки с исходными файлами». Появится FileChooser.
Используйте этот переключатель, чтобы выбрать папку изображений и нажать кнопку OK. К записи для папки с изображениями будет добавлена таблица.
Используйте кнопку OK в диалоговом окне "Свойства проекта", чтобы принять изменения и закрыть диалоговое окно.
Измените код для использования Class.getResource () .
public static void main(String[] args) throws IOException {
// find the file in the file system.. probably not a good idea
File f = new File("images/test.jpg");
System.out.println(f.getCanonicalPath()+" "+f.exists());
URL url = Main.class.getResource("/test.jpg");
System.out.println(url);
Когда вы запускаете проект из среды IDE, вы должны увидеть что-то вроде этого:
/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg true
file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/images/test.jpg
Когда вы запустите код, упакованный в банку, вы получите что-то вроде этого:
bash-3.2$ pwd
/export/home/vkraemer/nbhg/web-main
bash-3.2$ java -jar /export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar
/export/home/vkraemer/nbhg/web-main/images/test.jpg false
jar:file:/export/home/vkraemer/NetBeansProjects/JavaApplication2/dist/JavaApplication2.jar!/test.jpg
После того, как вы получите URL для файла test.jpg, вы можете использовать ImageIcon (URL) для создания иконки