2010-06-08 12 views
5

Estoy construyendo una aplicación en Java Swing y estoy usando el siguiente código para dar la interfaz de usuario de un sistema operativo nativo se venoscilación interfaz de usuario no tiene sistema operativo nativo mirar

try { 
    UIManager.setLookAndFeel(
    UIManager.getSystemLookAndFeelClassName()); 
    } catch (Exception e) { 
    e.printStackTrace(); 
} 

En un sistema operativo X, la mirada está bien , pero en Windows (XP y 7) los botones se ven así.

alt text http://img710.imageshack.us/img710/8735/buttonsoc.png

He utilizado este mismo código en otros proyectos y trabaja muy bien. Pero en este proyecto en particular tengo un aspecto completamente diferente.

Estoy usando Java 1.6

Gracias de antemano!

+0

¿Qué versión de Java estás usando? –

+2

Lo que ha publicado debería funcionar. ¿Ha consultado http://java.sun.com/docs/books/tutorial/uiswing/lookandfeel/plaf.html#programmatic? –

+0

@Romain - De ahí obtuve el código y funcionó antes. Ahora sorprendentemente está dando un aspecto diferente. También lo probé en diferentes sistemas con el mismo resultado. –

Respuesta

8

¿Está creando sus elementos GUI antes de configurar L & F? Si ya creó (p. Ej.) Instancias de JButton y métodos invocados en ellos, asignan sus pares de UI: los cambios a la L & F después de eso no afectarán a las instancias ya creadas.

Esto explicaría por qué funciona en Mac (el L & F está predeterminado en Mac en el JVM IIRC de Apple), pero no en Windows. Puedes probar esto rápidamente si te mueves estableciendo el L & F directamente en tu método principal como la primera llamada (esto suponiendo que tu clase principal NO contiene ninguna instancia de GUI inicializada estáticamente, por supuesto).

+0

¡Gracias! Eso fue todo. Me salvas mucho dolor –

Cuestiones relacionadas