27 julio 2006

Cambiar el icono de la taza de café en java

La forma normal de cambiar el icono de la taza de café en java en una aplicación consiste en llamar al método setIconImage() del JFrame principal de la aplicación. Luego, el resto de JDialog de la aplicación deben ser hijos, nietos o biznietos de este JFrame, heredando así su icono. Puedes ver más detalles de este cambio de icono.

Sin embargo, ayer un compañero de trabajo encontró una forma más bruta de hacerlo, de forma que queda cambiado para todas las aplicaciones java de nuestro ordenador (salvo que ellas lo cambien de forma expresa dentro).

Este método de fuerza bruta consiste en buscar dentro de nuestra instalación de java los ficheros rt.jar y awt.dll, que contienen dentro dicho icono de la taza de café y cambiarlo por otro. En Cambiar el icono de la taza de café están los detalles.

2 comentarios:

Anónimo dijo...

Muchas gracias por la información que nos das a los aprendices de java, desde que empecé en el mundo de JAVA siempre tienes las mejores soluciones a mis problemas. Gracias de nuevo

DAVID

Anónimo dijo...

Utilizando java 6 y Netbeans 6.1, una solución más elegante es;
-Para los FrameView, podemos incluir la línea "getMainFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(RUTA_DEL_ARCHIVO_IMAGEN);", en la clase "APP" el método "startup()", tras el "show(new FORM_QUE_MUESTRA(this));"

Si queremos mostrar un icono diferente para cada "form" tenemos que;

-Para los "FrameView", poner la línea siguiente "this.getFrame().setIconImage(Toolkit.getDefaultToolkit().getImage(RUTA_DEL_ARCHIVO_IMAGEN);", en el constructor de la clase tras el "initComponents();". Puede estar antes pero es mejor de esta forma así nos aseguramos que el "FrameView" ya se ha creado.

-Para los "JDialog", poner la línea siguiente "this.setIconImage(Toolkit.getDefaultToolkit().getImage(RUTA_DEL_ARCHIVO_IMAGEN);", en el constructor de la clase como en el caso anterior tras el "initComponents()".

También debéis incluir el "import java.awt.Toolkit".

Así podréis asignar un icono diferente a cada ventana de vuestra aplicación.

Saludos.