Retazo: Cambiar el LookAndFeel para el tiempo de ejecución

  • 1 Respuestas
  • 3697 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Adalher

  • *
  • Underc0der
  • Mensajes: 150
  • Actividad:
    0%
  • Country: 00
  • Reputación -3
    • Ver Perfil
Hola,

primero se coloca una clase (estatica) que trae y proporciona el LookAndFeels:

Código: (java) You are not allowed to view links. Register or Login
public class LookAndFeel
{
private static ArrayList<LookAndFeelInfo> installedLookAndFeels=new ArrayList<>();

static
{
Collections.addAll(installedLookAndFeels,UIManager .getInstalledLookAndFeels());
}


public static ArrayList<LookAndFeelInfo> getInstalledLookAndFeels()
{
return installedLookAndFeels;
}

public static String getLookAndFeelClassByName(String name)
{
for(LookAndFeelInfo lookAndFeelInfo:installedLookAndFeels)
{
if(lookAndFeelInfo.getName().equalsIgnoreCase(name ))
{
return lookAndFeelInfo.getClassName();
}
}
return UIManager.getSystemLookAndFeelClassName();
}

}


Por ejemplo, para mostrar todos los valores de un Combobox para la elección, se llena
el Combobox como sigue:

Código: (java) You are not allowed to view links. Register or Login
private javax.swing.JComboBox<String> lfComboBox;
...
lfComboBox = new javax.swing.JComboBox<String>();
lfComboBox.setModel(new DefaultComboBoxModel<String>());

.....

for(LookAndFeelInfo value:LookAndFeel.getInstalledLookAndFeels())
{
lfComboBox.addItem(value.getName());
}

El cambiar del LookAndFeel para el tiempo de ejecución:


Código: (java) You are not allowed to view links. Register or Login
try
{
//Colocar el LookAndFeel que se elige en el ComboboxDas en el UIManager
UIManager.setLookAndFeel(LookAndFeel.getLookAndFee lClassByName((String)lfComboBox.getSelectedItem()) );
//Ejecutar una actualización para todos los JFrames, JDialoge e. o, que estan activos o que quedan como instancias
SwingUtilities.updateComponentTreeUI(XXXXXXXX);
//Opcional
pack();
}
catch(ClassNotFoundException|InstantiationExceptio n|IllegalAccessException|UnsupportedLookAndFeelExc eption ex)
{
ex.printStackTrace();
}

Saludos
Este es el mayor reproche al pueblo hispanohablante:

Que a pesar de su inteligencia y a pesar de su valentía siempre adoran el poder.

Desconectado Elchito33

  • *
  • Underc0der
  • Mensajes: 1
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
Interesante aporte, hay que probarlo  ;D