Como usar Look And Feel en Java


Hola y buen día a todos mis lectores, después de un laaargo tiempo de ausencia, he vuelto y aunque esté “Con el agua al cuello” de trabajo, tengo ganas de escribir acerca de cómo trabajar con Look And Feel en Java, así que comienzo:





Primero que nada, hay que saber lo que es Look and Feel (Aspecto y Comportamiento) en Java, a falta de una buena definición en Internet, lo explicaré solo a mi manera: El Look and Feel, se refiere a una forma en concreto de cómo se ven y comportan los componentes SWING en Java (Cualquier JComponent), ya sean botones (JButton), tablas (JTable), combos (JComboBox, dejaré dar los otros nombres a tu cerebro :P), checkbox, labels, botones de radio, etc. Los Look And Feel (L&F en adelante para abreviar) disponibles pueden depender de qué sistema operativo tengas. Esta es una forma muy rápida y fácil para darle un aspecto completamente nuevo a tu GUI sin tener que cambiar el código (excepto claro, la parte donde se selecciona y aplica un L&F). Ahora, las preguntas más frecuentes serán tratadas a continuación (si hay más favor de comentarlas):


  • ¿Cómo saber de cuales L&F dispongo?
  • ¿Cómo y dónde aplicar un L&F a mi programa SWING?
  • ¿Es posible dar a elegir un L&F al usuario final?




Bueno, son todas las que se me ocurren ahí van las respuestas:

¿Cómo saber de cuales L&F dispongo?
Ahí va el código que muestra un dialogo con una lista de L&Fs disponibles:
Salida (Puede variar por cada equipo):


Importante: Esto solamente muestra los nombres en un dialogo, no aplica ningún L&F a nuestra interfaz.


¿Cómo y dónde aplicar un L&F a mi programa SWING? - ¿Es posible dar a elegir un L&F al usuario final?

Responderé las 2 preguntas aquí mismo: En teoría puede aplicarse en cualquier parte con el código adecuado, aquí les va una muestra más o menos decente de cómo hago yo para aplicarlo, y luego dar a elegir cualquier otro L&F disponible al usuario (pondré varios componentes para que noten la diferencia entre un L&F y otro):
Un poco largo, pero hace lo que debe de manera correcta, aquí les va una imagen con cada cambio que hago en el L&F:


¿Grandes diferencias no? Y todo posible cambiando solamente el Look and Feel, las diferencias se notan aún más si abrimos por ejemplo, el JFileChooser, hagan la prueba ;).

Para más información pueden visitar: http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

Eso es todo por hoy queridos lectores, espero hayan disfrutado este artículo porque probablemente me cueste mis empleos… :P no, mentira. Ya saben, cualquier duda, sugerencia, petición, crítica constructiva, favor de ponerla en los comentarios, no olviden suscribirse ya sea por RSS, Atom o por correo electrónico y si gustan, marcar alguna casilla de la sección “Mi opinión” para saber qué tal lo hago, hasta luego :D.



Artículos relacionados:



Comentarios

  1. Tengo un problema con un proyecto. Tengo una libreria instalada, sinthetycalWhiteVisionLookAndFeel. Mi problema es cuando limpio el proyecto y genero el archivo .jar. No abre. Mientras que, yo saco la linea UIManager.... si me anda, con el por defecto de Windows. Cómo puedo instalarla?

    ResponderEliminar
    Respuestas
    1. Hola Lautaro, con "limpiar el proyecto" no sé exactamente a qué te refieres, pero puede que ese no sea el problema, quizá ocurre al exportar el *.jar ¿lo exportas como "Runnable JAR File"? Por que en caso contrario no admite librerías, me ha pasado algunas veces, que funciona dentro del IDE, pero si no lo exportas como "Runnable JAR File" no acepta las librerías externas que le hayas agregado, puedes probar eso, ojala te sea de ayuda, saludos.

      Eliminar
    2. Otra cosa sería ver el código donde te marque o creas que está el error, si crees que es al instalar la librería, puedes visitar mi artículo sobre como instalar una librería, ahí se aplica a la de SQLITE, pero es lo mismo para todas, solo que usas el .jar de tu librería: http://baro3495.blogspot.mx/2012/09/como-instalar-sqlite-en-eclipse-ide.html

      Si nada de eso funciona puedes contactarme por mi perfil de Google, o la página de Facebook, saludos.

      Eliminar

Publicar un comentario