esta es la mejor manera de manejar todas las imágenes e iconos en un frasco de aplicaciones.
Una vez que haya comprimido todas sus imágenes e íconos en su propio archivo JAR - Configure su ruta de compilación agregando el archivo JAR de imágenes a la pestaña de sus bibliotecas para que ahora esté incluido en su classpath.
Entonces sólo tiene que utilizar los siguientes 3x líneas de código en el inicio de su Constuctor para acceder a cualquier imagen que necesita para cualquier cosa, incluyendo una imagen SystemTray que no acepta los simples de ImageIcon como su icono principal (raro lo sé) . Las líneas 3x son:
URL iconUrl = this.getClass().getResource("/image-iconb.png");
Toolkit tk = this.getToolkit();
imageIcon = tk.getImage(iconUrl);
(imageIcon es sólo un declarado variable de imagen constructor) Ahora se puede establecer un icono ventana de la manera más simple:
setIconImage(imageIcon);
y al mismo tiempo, utilice la misma variable al configurar System TrayIcon al declarar:
trayIcon = new TrayIcon(imageIcon, "SystemTray Demo", popupMenu);
Lo anterior le permite declarar imágenes o ImageIcons fácilmente y centralmente sin correr el riesgo de no mantener los recursos de imágenes en el lugar correcto. Lo mantiene agradable y ordenado, con el JAR que contiene todas sus imágenes compiladas automáticamente en tiempo de ejecución y distribución de su programa.
Como beneficio adicional, una vez que el JAR se ha registrado en la ruta de clases - se puede seguir añadiendo otras imágenes en la misma JAR en cualquier momento sin ninguna queja también - Todo funciona y las imágenes agregadas están disponibles al instante a su aplicación
Mucho mejor en mi opinión.
P: ¿Por qué está poniendo un recurso .png en un paquete de Java ??? Incluso si coloca cosas en un archivo .jar, generalmente tendrá un directorio separado para los recursos ("/ resources" es un Favorito Pop). Por ejemplo: [Agregar imagen a Jar] (http://stackoverflow.com/questions/1096398/add-image-to-jar-java). PD: este enlace responde a su pregunta específica ... pero aconsejaría no hacerlo, si es posible. En mi humilde opinión ... – paulsm4
paquete src/PackageB/PackageBa/PackageBaa/MyImage.png será la carpeta –
Image image = Toolkit.getDefaultToolkit(). GetImage ("Agent.gif"); – TechDog