2008-09-19 10 views

Respuesta

9

Puede tomar la forma de la raíz (por el cual supongo que te refieres JFrame) ser su propia subclase de JFrame, y poner la funcionalidad estándar en su constructor, tales como:

this.setIconImage(STANDARD_ICON); 

puede agrupar otras cosas norma aquí también, como memorizar las métricas de la ventana del marco como una preferencia del usuario, administrar paneles de salpicadero, etc.

Cualquier nueva trama generada por ésta también sería una instancia de esta subclase JFrame. Lo único que debe recordar es crear una instancia de su subclase, en lugar de JFrame. No creo que haya ningún sustituto para recordar hacer esto, pero al menos ahora es una cuestión de recordar una subclase en lugar de una llamada setIconImage (posiblemente entre otras características).

+0

No es ideal, pero funciona. Debería haber una manera de hacer esto para todas las formas en una aplicación. Algunos formularios pueden ser generados por herramientas de terceros, etc. –

+0

Sí, debe * haber * un camino, pero el sol no lo ha proporcionado. Es probablemente una mejora de sev3 en bugparade en algún lugar ... –

0

Extienda la clase JDialog (por ejemplo, nombre MyDialog) y configure el icono en el constructor. Entonces todos los diálogos deberían extender su implementación (MyDialog).

1

Además, si tiene una ventana "principal" y establece su icono correctamente, siempre que use esa ventana principal como "principal" para cualquier clase de diálogo, heredarán el icono. Sin embargo, cualquier cuadro nuevo necesita tener el icono configurado.

como dijo Paul/Andreas, subclasificar a JFrame va a ser tu mejor opción.

2

Hay otra manera, pero es más de un "hack", entonces una solución real ....

Si está distribuyendo el JRE con la Solicitud, se podría reemplazar el recurso icono de la taza de café en el java exe/dll/rt.jar donde sea que esté con tu propio ícono. Puede que no sea muy legítimo, pero es una posibilidad ...

+0

De acuerdo. Funcionaría, pero no me siento tan desesperado. :) –

+0

Si es la única manera, no importa si estás desesperado o no :) Mi empresa lo hace a través de la propiedad 'executableIcon' de InstallAnywhere. Creo que lo hace reemplazando 'JavaCup.png' en' jre/lib/resources.jar'. –

Cuestiones relacionadas