Custom TableCellRenderer / TreeTableCellRenderer no procesa celdas de la tabla
yo hice estoCustomCellRenderer
clase destinada a ser utilizada enJXTreeTable
yJXTable
Objetos ya que tengo muchos de estos en mi proyecto. Así que esta clase implementaTreeCellRenderer
yTableCellRenderer
interfaces:
public class CustomCellRenderer extends JLabel
implements TreeCellRenderer, TableCellRenderer {
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
setBackground(selected ? new Color(83,142,213) : Color.white);
setForeground(selected ? Color.white : Color.black);
//here is the icon setting code but it's irrelevant to my problem
setText(value != null ? value.toString() : "<null>");
return this;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setBackground(isSelected ? new Color(83,142,213) : Color.white);
setForeground(isSelected ? Color.white : Color.black);
setText(value != null ? value.toString() : "<null>");
return this;
}
}
Y aquí está el código donde configuro el renderizador:
jXTreeTableConsumos.setDefaultRenderer(Object.class, new CustomCellRenderer());
jXTreeTableConsumos.setTreeCellRenderer(new CustomCellRenderer());
Estoy esperando que el fondo y el primer plano se conviertan en azul y blanco respectivamente cuando se selecciona una fila. Sin embargo, solo ocurre en la celda de la tabla del árbol (primera columna) mientras que solo los cambios en primer plano y las imágenes de fondo son blancas en las otras celdas en la misma fila seleccionada:
¿Podría alguien decirme por qué las células (que no son células de árbol) no cambian su color de fondo?