Google

domingo, 27 de abril de 2008

Cambiar el color de fondo y el de fuente del encabezado de un JTable

Para cambiar el color de fondo(background) y el de fuente(foreground) del encabezado de un componente JTable es necesario definir un TableCellRenderer personalizado. Para esto se debe crear una clase que herede de DefaultTableCellRenderer. En nuestro caso utlizamos la clase MyRenderer.java.

Parte del código de la clase MyRenderer.java

public class MyRenderer extends DefaultTableCellRenderer {
Color background;
Color foreground;
public MyRenderer (Color background,Color foreground) {
super();
this.background = background;
this.foreground = foreground;
}
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
Component comp = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
comp.setBackground(background);
comp.setForeground(foreground);
return comp;
}
}

Para hacer uso de esta clase solo es necesario escribir este código en el lugar donde esta el jTable:

jTable.getColumnModel().getColumn(0).setHeaderRenderer(new MyRenderer(Color.orange,Color.orange));

La clase MyRenderer tiene definido un constructor que recibe 2 parámetros Color, los cuales corresponden a los colores de fondo y de fuente.