Установить изображение значка в файл Jar - PullRequest
6 голосов
/ 20 марта 2010

При работе в NetBeans работает следующий код.

this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage("PlagiaLyzerIcon.png"));

Однако, как только он был встроен в файл Jar, значок исчез.

Кто-нибудь имеет представление, в чем проблема? Я понял, что должен поместить изображение значка в корневой каталог, однако после компиляции в JAR значок исчез.

Спасибо за любую помощь ...

Привет всем, проблема была решена с помощью следующего кода,

 this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("plagialyzer/resources/PlagiaLyzerIcon.png")));

Работает после компиляции в jar-файл.

Ответы [ 5 ]

7 голосов
/ 20 марта 2010

Используйте

this.getFrame().setIconImage(
new imageIcon(getClass().getClassLoader().getResource("PlagiaLyzerIcon.png"))
);

вместо.

Примечание:

эта строка работает, только если изображения находятся в корне файла jar. Если нет, вы должны указать папку в строке:

getResource("yourfolder/PlagiaLyzerIcon.png")
2 голосов
/ 20 марта 2010

Это связано с тем, что IDE Netbeans имеет другой путь к классу, чем при запуске автономного jar-файла (без Ant).

Предположим, ваш проект Netbeans находится по адресу /project/:

Путь к классу: /project/build/classes/ и корень проекта /project/. Если ваши значки хранятся в: /project/myicons/, то они являются частью пути к классам, так как /project/ тоже. Но когда вы строите свой проект, в jar-файле в конечном итоге окажутся только файлы из /project/build/classes/, эти файлы будут "build" из /projcet/src/.

Решение:

Переместите ваши иконки в пакет с исходным кодом: /project/src/myicons/

Или добавьте папку /project/myicons/ в свои источники (щелкните правой кнопкой мыши свой проект -> Свойства -> Источники -> добавьте туда свою папку)

1 голос
/ 18 сентября 2011

Большое спасибо ...

Вот код, который работает для меня !!!!

    BufferedImage image = null;

    try {
        image = ImageIO.read(getClass().getClassLoader().getResource("images/frame.png"));
    } catch (IOException e) {
        e.printStackTrace();
    }


    super.setIconImage(image);
0 голосов
/ 26 августа 2016

Используя NetBeans, как я, просто поместите логотип (в моем случае mylogo.png) в каталог src / в папке вашего проекта. Убедитесь, что размер - 32 x 32 пикселя, чтобы обеспечить лучшее качество иконки. Мне не удалось установить изображения .ico в качестве значка JFrame, но .png работал хорошо. Расширяя JFrame, я напрямую устанавливаю иконку фляги с помощью:

Image getIcon()
{ return Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("mylogo.png")); }

setIconImage(getIcon());

После очистки и сборки jar значок файла jar по-прежнему не изменяется (по-прежнему значок jar по умолчанию), но при запуске файла jar значок в строке заголовка и на панели задач будет вашим собственным значком. Вы можете изменить значок файла jar, создав ярлыки и изменив значок для этого ярлыка. Наилучшее разрешение для значка ярлыка - 512 x 512 пикселей .ico

0 голосов
/ 20 марта 2010

Указали ли вы путь сборки для ваших значков в настройках Netbean перед экспортом JAR? В Eclipse это делается путем добавления исходной папки в путь сборки Java, как показано на этом снимке экрана . Должно ли быть так же на Netbeans?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...