Установить изображение значка в файле Jar
следующий код отлично работает при работе на 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 ответов
использовать
this.getFrame().setIconImage(
new imageIcon(getClass().getClassLoader().getResource("PlagiaLyzerIcon.png"))
);
вместо.
Примечание:
эта строка работает только если картинки в корень jar-файла. Если нет, вы должны указать папку в строку:
getResource("yourfolder/PlagiaLyzerIcon.png")
это потому, что IDE Netbeans имеет другой путь к классам, чем при запуске автономного файла jar (без Ant).
предположим, что ваш проект Netbeans находится в месте /project/
:
classpath-это: /project/build/classes/
и корень проекта /project/
. Если ваши значки хранятся в: /project/myicons/
, тогда они являются частью пути к классам, так как /project/
слишком. Но когда вы создаете свой проект, только файлы в /project/build/classes/
в конечном итоге окажется в jar-файле, эти файлы " build" от /projcet/src/
.
устранение:
переместите значки в исходный пакет:/project/src/myicons/
или добавить /project/myicons/
папка для ваших источников (щелкните правой кнопкой мыши ваш проект- > свойства - > источники - > добавить папку там)
Спасибо большое...
вот код, который работает для меня!!!!
BufferedImage image = null;
try {
image = ImageIO.read(getClass().getClassLoader().getResource("images/frame.png"));
} catch (IOException e) {
e.printStackTrace();
}
super.setIconImage(image);
вы указали путь сборки к своим значкам в параметрах Netbean перед экспортом JAR? В Eclipse это делается путем добавления исходной папки внутри пути сборки Java, как показано в этом скриншот. Должно быть так же на Netbeans?
используя NetBeans, как и я, просто поместите логотип (в моем случае mylogo.png) внутри src / directory в папке проекта. Убедитесь, что размер 32 x 32 пикселей для обеспечения наилучшего качества для значка. Я не мог установить .ICO изображения как мой значок JFrame, но .ПНГ работал хорошо. Расширяя JFrame, я напрямую устанавливаю значок jar с помощью:
Image getIcon()
{ return Toolkit.getDefaultToolkit().getImage(getClass().getClassLoader().getResource("mylogo.png")); }
setIconImage(getIcon());
после очистки и сборки jar значок файла jar по-прежнему не изменяется (по-прежнему значок jar по умолчанию), но при выполнении файла jar значок в строке заголовка и панель задач будет вашим пользовательским значком. Вы можете изменить значок файла jar, создав ярлыки и значок изменения для этого ярлыка. Лучшее разрешение для ярлыка - 512 x 512 пикселей .ico