mmm que raro bueno te dejo un ejemplo simple de como se haria
import java.awt.Component;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.EventObject;
import java.util.Hashtable;
import javax.swing.DefaultCellEditor;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.event.CellEditorListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
private static final long serialVersionUID = 1L;
CheckBoxRenderer() {
setHorizontalAlignment
(JLabel.
CENTER); }
boolean isSelected, boolean hasFocus, int row, int column) {
if (isSelected) {
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSelected
((value
!= null && ((Boolean) value
).
booleanValue())); return this;
}
}
public class frame
extends JFrame { public frame() {
super(" Table");
public boolean isCellEditable(int row, int column) {
if (column == 0) {
return true;
}
return false;
}
};
dm.
setDataVector(new Object[][] { { "null", "String", "JLabel", "null" },
{ "false", "String", "JLabel", "null" },
{ new Boolean(true),
"Boolean",
"JCheckBox",
"JCheckBox" },
{ new Boolean(false),
"Boolean",
"JCheckBox",
"JCheckBox" },
{ "null", "String", "JLabel", "null" },
{ "null",
"String",
"JLabel",
"nulll" } },
new Object[] { "Component", "Data", "Renderer", "Editor" });
CheckBoxRenderer checkBoxRenderer = new CheckBoxRenderer();
EachRowRenderer rowRenderer = new EachRowRenderer();
rowRenderer.add(2, checkBoxRenderer);
rowRenderer.add(3, checkBoxRenderer);
checkBox.
setHorizontalAlignment(JLabel.
CENTER);
EachRowEditor rowEditor = new EachRowEditor(table);
// rowEditor.setEditorAt(0, comboBoxEditor);
// rowEditor.setEditorAt(1, comboBoxEditor);
rowEditor.setEditorAt(2, checkBoxEditor);
rowEditor.setEditorAt(3, checkBoxEditor);
// end
table.getColumn("Component").setCellRenderer(rowRenderer);
table.getColumn("Component").setCellEditor(rowEditor);
getContentPane().add(scroll);
setSize(400, 160);
setVisible(true);
}
public static void main
(String[] args
) { frame frame = new frame();
}
});
}
}
/**
* @version 1.0 11/09/98
*/
public EachRowRenderer() {
}
renderers.
put(new Integer(row
), renderer
); }
boolean isSelected, boolean hasFocus, int row, int column) {
if(isSelected){
System.
out.
println("---------------"); System.
out.
println(table.
getSelectedRow()); System.
out.
println("---------------"); }
if (renderer == null) {
renderer = defaultRenderer;
}
return renderer.getTableCellRendererComponent(table, value, isSelected,
hasFocus, row, column);
}
}
public EachRowEditor
(JTable table
) { this.table = table;
}
editors.
put(new Integer(row
), editor
); }
boolean isSelected, int row, int column) {
//editor = (TableCellEditor)editors.get(new Integer(row));
//if (editor == null) {
// editor = defaultEditor;
//}
return editor.getTableCellEditorComponent(table, value, isSelected,
row, column);
}
public Object getCellEditorValue
() { return editor.getCellEditorValue();
}
public boolean stopCellEditing() {
return editor.stopCellEditing();
}
public void cancelCellEditing() {
editor.cancelCellEditing();
}
return editor.isCellEditable(anEvent);
}
editor.addCellEditorListener(l);
}
editor.removeCellEditorListener(l);
}
return editor.shouldSelectCell(anEvent);
}
int row;
if (e == null) {
row = table.getSelectionModel().getAnchorSelectionIndex();
} else {
row = table.rowAtPoint(e.getPoint());
}
if (editor == null) {
editor = defaultEditor;
}
}
}