posted 13 years ago
Hi,
I am adding the rows as something like the below..
dtm.insertRow(y,new Object[]{"","","",new Boolean(false),affUnsprung.getModelYear(),affUnsprung.getVehicleFamily(),affUnsprung.getVehicleLine(),affUnsprung.getPriceClass(),affUnsprung.getBodyStyle(),affUnsprung.getMarketSegment(),affUnsprung.getEngineSc(),affUnsprung.getGvwrSc(),affUnsprung.getPickupBoxSc(),affUnsprung.getMktSegQualSc(),affUnsprung.getGvwRating(),affUnsprung.getSalesCode(),affUnsprung.getOptConnectorCodes()});
this is the logic for getting the rows and subgroups..
rowRenderer1.add(y, checkBoxRenderer1);
rowEditor1.setEditorAt(y, checkBoxEditor1);
y++;
here adding the renderers
affectedTable.getColumnModel().getColumn(3).setCellRenderer(rowRenderer1);
affectedTable.getColumnModel().getColumn(3).setCellEditor(rowEditor1);
and the renderer and editor class as below..
class EachRowRenderer implements TableCellRenderer {
protected Hashtable renderers;
protected TableCellRenderer renderer, defaultRenderer;
public EachRowRenderer() {
renderers = new Hashtable();
defaultRenderer = new DefaultTableCellRenderer();
}
public void add(int row, TableCellRenderer renderer) {
renderers.put(new Integer(row), renderer);
}
public Component getTableCellRendererComponent(JTable table, Object value,boolean isSelected, boolean hasFocus, int row, int column) {
renderer = (TableCellRenderer) renderers.get(new Integer(row));
if (renderer == null) {
renderer = defaultRenderer;
}
return renderer.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
}
}
Row Editor as follows:
class EachRowEditor implements TableCellEditor {
protected Hashtable editors;
protected TableCellEditor editor, defaultEditor;
JTable table;
/**
* Constructs a EachRowEditor. create default editor
*
* @see TableCellEditor
* @see DefaultCellEditor
*/
public EachRowEditor(JTable table) {
this.table = table;
editors = new Hashtable();
defaultEditor = new DefaultCellEditor(new JTextField());
}