package com.link_intersystems.swing;
import java.awt.Color;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
public class AlternatingColorTableCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 2701013950867204696L;
private TableCellRenderer cellRenderer;
private Color oddForeground = Color.BLACK;
private Color oddBackground = UIManager.getColor("Panel.background");
private Color evenForeground = Color.BLACK;
private Color evevBackground = Color.WHITE;
public AlternatingColorTableCellRenderer() {
this.cellRenderer = new TableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
return AlternatingColorTableCellRenderer.super
.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
}
};
}
public AlternatingColorTableCellRenderer(TableCellRenderer cellRenderer) {
this.cellRenderer = cellRenderer;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component renderComponent = cellRenderer.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
if (!isSelected) {
if (row % 2 == 0) {
renderComponent.setForeground(oddForeground);
renderComponent.setBackground(oddBackground);
} else {
renderComponent.setForeground(evenForeground);
renderComponent.setBackground(evevBackground);
}
}
return renderComponent;
}
public void setOddColor(Color foreground, Color background) {
this.oddForeground = foreground;
this.oddBackground = background;
}
public void setEvenColor(Color foreground, Color background) {
this.evenForeground = foreground;
this.evevBackground = background;
}
}