Look & Feel nativo en Windows con Swing

Una de las ventajas que tiene Java respecto a otros sistemas es la capacidad de adaptarse a los diferentes sistemas operativos, y de adaptarse a las diferentes interfaces usando Swing, aunque si bien es cierto que la aplicación funciona, no lo hace todo lo «bonito» que queremos, al menos eso me ocurrió a mí, sin embargo sí que podemos conseguir una aplicación que «de el pego» haciendo lo siguiente:

  • Detectar qué sistema operativo estamos ejecutando.
  • Aplicar el tema correspondiente a nuestra aplicación.

Lo que en código se traduce a:

String os = System.getProperty("os.name").toLowerCase();
String name = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
if (os.indexOf("win") >= 0) {
     try {
          UIManager.setLookAndFeel(name);
     }
     catch (Exception e) {}
}

Lo que hemos hecho ha sido, obtener el identificador del sistema operativo y transformarlo a minúsculas:

String os = System.getProperty("os.name").toLowerCase();

Una vez hecho esto, lo comparamos con el identificador deseado (en este caso, «win»):

if (os.indexOf("win") >= 0) {}

Finalmente, en caso de ser correcto, aplicamos el tema del sistema:

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

Es importante destacar que esta última sentencia ha de ir rodeada por un try … catch, ya que en caso contrario el compilador nos devolverá un error.

Espero que os haya sido tan útil o más de lo que me fue encontrar esto en su momento

Para más información: Documentación de Java (en inglés)

Autor: Roberto Luis Bisbé

Software Developer, Computer Engineer

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.