Dies ist eine alte Version des Dokuments!
JTable, wechselnde Zeilenfarbe mit TableCellRenderer
JTable bietet die Möglichkeit die Darstellung einer Tabelle mittels eines TableCellRenderer zu verändern:
public class MyRenderer extends JLabel implements TableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { TableModel model = table.getModel(); setBackground(row%2==0 ? Color.WHITE : Color.YELLOW); setForeground(Color.BLACK); setText((value != null)?value.toString():""); if (isSelected) { setBorder(BorderFactory.createLineBorder(Color.BLACK)); }else { setBorder(BorderFactory.createLineBorder(table.getBackground())); } }
Ein solcher CellRenderer kann dann der Tabelle zugewiesen werden:
Table myTable = ... myTable.setDefaultRenderer(Object.class, new MyRenderer());