Necesito conseguir el color de fondo por defecto de un TableHeader
sino de la de Windows LookAndFeel
. Ya he probado:
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
System.out.println(UIManager.getColor("TableHeader.background"));
catch (Exception e) {
e.printStackTrace();
}
Pero sólo devuelve el color predeterminado (por lo que el metal tema de uno). ¿Cómo consigo el color de fondo de un componente de una específica LookAndFeel
?
PD.
En este caso
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
es lo mismo que
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
EDITAR:
Ok me enteré, por lo que devuelve un valor "incorrecto" para TabHeaader.background
. Eso es debido a que el color que quiero no es el TabHeader.background
o TabHeader.foreground
. Pero, ¿cómo uno sabe uno por el color del "fondo"?
EDIT 2:
Descubrí, que header.setBackground(COLOR);
funciona si usted está en el tema por defecto. Pero cuando me puse LookAndFeel
el aspecto y la sensación de Windows header.setBackground(COLOR)
cambia el color del borde.
El aspecto de Windows y la sensación se define en la LookAndFeel
clase com.sun.java.swing.plaf.windows.WindowsLookAndFeel
. Se puede utilizar invocando el UIManager.setLookAndFeel
con el nombre completo de la clase como un argumento:
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
System.out.println(UIManager.getColor("TableHeader.background"));
} catch (Exception ex) {
// HANDLE EXCEPTION
}
Esta es la lista de la mirada disponible y se siente en el marco de swing: https://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html#available
Espero que esto ayude.