UIManager: Cambiar colores por defecto de ventanas java

De ChuWiki
Revisión del 08:41 24 mar 2007 de Chuidiang (Discusión | contribuciones) (UIManager)

Saltar a: navegación, buscar

UIManager

UIManager es una clase java que contiene mucha de la información que necesita java para construir los botones, ventanas y demás.

Entre otras cosas, tiene almacenado dentro cuáles son los colores por defecto que tendrá cada uno de los componentes java. El color de fondo de botones, checkbox, pestañas, etc.

Podemos fácilmente cambiar esos colores. El siguiente trocito de código hará que a partir de ese momento todos los botones que instanciemos tengan color blanco

UIManager.put("Button.background", Color.white);

Basta con llamar al método put() y fijar una propiedad "Button.background" con el color que queremos.

Obtener las propiedades de UIManager

Para cambiar otros colores de otros componentes necesitaremos saber el nombre de la propiedad de ese color y componente en concreto. ¿Cómo sabemos los nombres de las propiedades de UIManager?. En la API de java no aparece una lista de dichas propiedades, pero este pequeño código nos puede ayudar a obtenerlas:

UIDefaults d = UIManager.getDefaults();
Enumeration<Object> claves = d.keys();
while (claves.hasMoreElements())
   System.out.println(claves.nextElement());

que nos dará el siguiente listado (java 1.5)

class javax.swing.plaf.basic.BasicPanelUI
javax.swing.plaf.basic.BasicPanelUI
class javax.swing.plaf.metal.MetalRootPaneUI
Button.background
class javax.swing.plaf.metal.MetalButtonUI
javax.swing.plaf.metal.MetalButtonUI
javax.swing.plaf.metal.MetalRootPaneUI
TextPane.font
Label.background
OptionPane.warningDialog.titlePane.shadow
ToolTip.foregroundInactive
ToolBar.separatorSize
TabbedPane.tabAreaInsets
FileView.floppyDriveIcon
RootPane.informationDialogBorder
...

No están todas, que son muchas, muchas.