viernes, 1 de julio de 2011

Cambiar icono JFrame y JDialog.

Hola y buenos días para las personas que vengan a parar aquí.

El motivo de esta entrada es explicar un poco como cambiar el icono de las ventanas JFrame y JDialog, ya que sinceramente, me parece algo lioso para quién no lo sepa, y que muchas de las cosas que leí por internet solamente me funcionó una de ellas.

Para las clases que programemos que hereden de JFrame, es bastante sencillo realizar el cambio de icono.

En primer lugar vamos a redefinir el método getIconImage(), heredado de la clase JFrame. El código que insertaremos en este método será el siguiente:


public Image getIconImage() {
    Image retValue = Toolkit.getDefaultToolkit().
    getImage(ClassLoader.getSystemResource("resources/Cadenas.png"));

    return retValue;
}

Donde "resources/Cadenas.png" es la ruta donde se encuentra el icono que queremos establecer para nuestra ventana. El formato debe ser PNG, ya que en otros formatos da ciertos problemas.

También es recomendable que nuestros iconos se encuentren en un paquete de nuestro proyecto. En mi caso cree una carpeta llamada resources y dentro de ella metí la imagen del icono.

Una vez realizado esto, en el constructor de nuestra clase pondremos la siguiente instrucción:

setIconImage(getIconImage());

De esta forma cambiaremos el icono por el que indicamos en el método redefinido.

Ya tenemos nuestro JFrame con nuestro icono personalizado.

En los JDialog la cosa cambia, ya que por si solos ellos no poseen un icono. Para poder establecer un icono para los JDialog, debemos crear un JFrame, asignarle a este JFrame un icono (como hemos visto anteriormente) y, a la hora de crear nuestro JDialog, pasarle como padre el JFrame modificado. De esta forma tendremos nuestro JDialog con icono.