Для тех, кто нуждается в помощи, которые сталкивались с этой страницей в Google - я написал ответ в другом вопросе StackOverflow , который дает лучший способ обработки изображений в приложениях JAVA, чтобы вы могли легко получить доступ к изображениям для всех типов методов изображения в Java:
Это лучший способ обработки всех изображений и значков в приложении JAR.
После того, как вы заархивировали все свои изображения и значки в собственный JAR-файл - настройте путь сборки, добавив JAR-файл изображений на вкладку библиотеки, чтобы он теперь был включен в ваш путь к классам.
Затем просто используйте следующие 3x строки кода в начале вашего конструктора, чтобы получить доступ к любому изображению, в котором вы нуждаетесь, для чего угодно, включая изображение SystemTray, которое не принимает простой ImageIcon в качестве основного значка (странно Я знаю). 3x строки:
URL iconUrl = this.getClass().getResource("/image-iconb.png");
Toolkit tk = this.getToolkit();
someimgicon = tk.getImage(iconUrl);
(someimgicon - это просто конструктор, объявленный как переменная Image)
Теперь вы можете установить значок окна так же, как:
setIconImage(someimgicon);
и одновременно используют одну и ту же переменную при настройке System TrayIcon, объявив:
trayIcon = new TrayIcon(someimgicon, "SystemTray Demo", popupMenu);
Вышеприведенное позволяет легко и централизованно объявлять изображения или изображения изображений, не рискуя не хранить ресурсы изображения в нужном месте. Это делает его красивым и аккуратным, так как JAR содержит все ваши изображения, автоматически скомпилированные во время выполнения и распространения вашей программы.
В качестве бонуса , как только JAR зарегистрирован в вашем classpath - вы можете продолжать добавлять любые другие изображения в тот же JAR в любое время без лишней суеты - все просто работает, и добавленные изображения мгновенно доступны для вашего приложения.
На мой взгляд, намного лучше.