Java Look & Feel

Las interfaces gráficas de Java hechas con Swing pueden cambiar facilmente la apariencia de sus componentes (frames, botones, cajas, listas, etc). Así, además de cambiar su apariecn

Si bien los componentes AWT toman el aspecto de la plataforma donde se estén ejecutando (Linux, Windows, etc), utilizando el método setLookAndFeel() del objeto UIManager.


Veremos un breve ejemplo del uso del UIManager: la idea es crear una ventana, que despliegue una lista de los look and feels instalados en nuestro equipo, y que seleccionado el mismo nos cambie el aspecto de nuestra aplicación.

Vamos al código:

Desde la ventana principal de mi app, a través de un botón o una opción de menú creo un diálogo con los look and feels instalados:

private void jButtonSkinsActionPerformed(

java.awt.event.ActionEvent evt) {

/**
* Creo una instancia del Dialog jDialogLAF
*/
jDialogLAF ventana_skins = new jDialogLAF( this );
ventana_skins.setVisible(true);

}

El díalogo tiene esta apariencia:

jlaf.jpg

Los métodos que nos interesa ver el mismo son los utilizados para cargar la lista de los look and feels instalados y el listener del botón “Aceptar”:

public void loadForm() {

/**
* Luego del initComponents() del JDialog
* llamo a loadForm que llenar la lista con los L&F
* instalados en el sistema
*/
LookAndFeelInfo[] lista = UIManager.getInstalledLookAndFeels()
DefaultListModel modelo = new DefaultListModel();

for (int i = 0; i < lista.length; i++) {

try {

UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName()
);
modelo.addElement(lista[i].getClassName());

} catch {

}

}
jListLAF.setModel(modelo);

}
private void AceptarActionPerformed(java.awt.event.ActionEvent evt) {

/**
* Obtiene el L&F seleccionado de la lista
* y actualiza los componentes de la ventana principal
*/
try {

System.out.println(jListLAF.getSelectedValue());
UIManager.setLookAndFeel((String) jListLAF.getSelectedValue());
SwingUtilities.updateComponentTreeUI( ventana_principal );
dispose();

} catch {

}

}

Ahora, les dejo a ustedes instalar nuevos looks and feels y aún mejor, intentar crear su propio look and feel.

2 comentario en este artículoDeje el suyo
  1. Muy buena explicación…

    En mi sitio ( http://kolosso.nireblog.com/ ) he publicado como cambiar el Look&Feel en nuestras aplicaciones Java para obtener Look´s and Feel que no vienen con el JDK y en específico, como cambiar los colores del Look&Feel conocido como NimROD Look&Feel…algunas personas me habían contactado preguntando esto y no había encontrado ningún sitio que lo explicara.

  2. Que tal, muy bueno el articulo y bien explicado, pero tengo una duda, es posible aplicarle un look and feel diferente a ventanas diferentes en una misma aplicacion?

1 mención a este artículo
Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2014

WordPress