Pregunta

Sé que puedo especificar uno para cada formulario, o para el formulario raíz y luego se conectará en cascada a todos los formularios secundarios, pero me gustaría tener una forma de anular la taza de café Java predeterminada para todos los formularios, incluso aquellos. Podría olvidarlo.

¿Alguna sugerencia?

¿Fue útil?

Solución

Puedes hacer la forma raíz (con lo que supongo que te refieres JFrame) ser tu propia subclase de JFrame, y poner funcionalidad estándar en su constructor, como por ejemplo:

this.setIconImage(STANDARD_ICON);

También puede incluir otras cosas estándar aquí, como memorizar las métricas de la ventana del marco como preferencia del usuario, administrar paneles de presentación, etc.

Cualquier fotograma nuevo generado por este también sería instancia de esto. JFrame subclase.Lo único que tienes que recordar es crear una instancia de tu subclase, en lugar de JFrame.No creo que haya ningún sustituto para recordar hacer esto, pero al menos ahora es cuestión de recordar una subclase en lugar de una setIconImage llamada (entre posiblemente otras funciones).

Otros consejos

Hay otra manera, pero es más un "truco" que una solución real...

Si está distribuyendo el JRE con su aplicación, puede reemplazar el recurso del ícono de la taza de café en java exe/dll/rt.jar dondequiera que esté con su propio ícono.Puede que no sea muy legítimo, pero es una posibilidad...

Además, si tiene una ventana "principal" y configura su ícono correctamente, siempre que use esa ventana principal como "principal" para cualquier clase de Diálogo, heredarán el ícono.Sin embargo, cualquier marco nuevo debe tener el ícono configurado.

Como dijo Paul/Andreas, subclasificar JFrame será su mejor opción.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top