public class TableModel1 extends AbstractTableModel { final Object[][] data = { {"String 1", new Boolean(false), new JRadioButton("a")}, {"String 2", new Boolean(true), new JRadioButton("b")}, {"String 3", new Boolean(false), new JRadioButton("c")} }; public TableModel1() { } public int getColumnCount() { return 3; } public int getRowCount() { return data.length; } public Object getValueAt(int row, int col) { return data[row][col]; } public boolean isCellEditable(int row, int col) { return true; } public void setValueAt(Object value, int row, int col) { data[row][col] = value; fireTableCellUpdated(row, col); } public Class getColumnClass(int c) { return getValueAt(0, c).getClass(); } }