class ZebraTable extends JTable { protected Color evenColor; protected Color oddColor; public ZebraTable(TableModel dm) { super(dm); evenColor = UIManager.getColor("Table.background"); oddColor = new Color( Math.max((evenColor.getRed() - 10), 0), Math.max((evenColor.getGreen() - 10), 0), Math.max((evenColor.getBlue() - 10), 0), evenColor.getAlpha()); } @Override public Component prepareRenderer(TableCellRenderer renderer, int row, int column) { if (isRowSelected(row)) { return super.prepareRenderer(renderer, row, column); } Component c = super.prepareRenderer(renderer, row, column); c.setBackground(row % 2 == 0 ? evenColor : oddColor); return c; } }