Cómo puedo obtener una imagen que está en un fichero JAR
Quiero insertar una imagen en un JButton, pero la imagen en cuestión está dentro de un fichero JAR. ¿Qué tengo que hacer para obtenerla?
Respuesta
Para obtener la imagen en cuestión no necesitamos hacer referencia al fichero JAR en el cual la imagen está guardada. Lo único que tenemos que tener en cuenta es que el fichero JAR esté visible desde nuestra aplicación.
Cuando una imagen se quiere insertar en un componente Swing como JButton o JLabel, Java considera a esta imagen como un icono y este icono es representado por la Interfaz javax.swing.Icon que a su vez es implementada por la Clase javax.swing.ImageIcon.
Los componentes Swing como como JButton o JLabel utilizan el método setIcon(...) para así poder mostrar a parte de texto iconos. Esta es la signatura de este método
| public void setIcon(Icon icono) |
Para crear un objeto de tipo ImageIcon utilizamos uno de sus Constructores. Esta es la signatura de uno de sus Constructores
| public ImageIcon(URL localización) |
Si la imagen se llama abrir.gif y está bajo el directorio /imagenes de un fichero JAR visible desde nuestra aplicación, este es el código que tenemos que escribir para insertar la imagen en un objeto de tipoo JButton apuntado por una variable de referencia llamada btnAbrir
| ... import javax.swing.ImageIcon; ... btnAbrir.setIcon(new ImageIcon(getClass().getResource("/imagenes/abrir.gif"))); ... |
Para ver un ejemplo de como insertar una imagen en un fichero JAR, obtener dicha imagen y seguidamente añadirla a un objeto de tipo JButton tenemos que seguir el siguiente vínculo Apéndice - Cartografía del IDE NetBeans - Insertar y obtener imágenes en un fichero JAR con NetBeans