Java tutorial
import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; public class Main { public static void main(String[] argv) { DefaultTableModel model = new DefaultTableModel() { public Class getColumnClass(int mColIndex) { int rowIndex = 0; Object o = getValueAt(rowIndex, mColIndex); if (o == null) { return Object.class; } else { return o.getClass(); } } }; JTable table = new JTable(model); model.addColumn("Col1", new Object[] { Color.red }); model.addRow(new Object[] { Color.green }); model.addRow(new Object[] { Color.blue }); table.setDefaultRenderer(Color.class, new ColorTableCellRenderer()); JFrame f = new JFrame(); f.setSize(300, 300); f.add(new JScrollPane(table)); f.setVisible(true); } } class ColorTableCellRenderer extends JLabel implements TableCellRenderer { Color curColor; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int rowIndex, int vColIndex) { if (curColor instanceof Color) { curColor = (Color) value; } else { curColor = table.getBackground(); } return this; } public void paint(Graphics g) { g.setColor(curColor); g.fillRect(0, 0, getWidth() - 1, getHeight() - 1); } }