Я использовал TableCellRenderer и TableCellEditor добавили столбец таблицы checkBox.следующий код:
class PanelCellEditorRenderer extends AbstractCellEditor implements
TableCellRenderer, TableCellEditor {
private static final long serialVersionUID = 1L;
private JCheckBox checkBox = new JCheckBox();
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
checkBox.setSelected((boolean)value);
checkBox.setHorizontalAlignment(SwingUtilities.CENTER);
//table.addRowSelectionInterval(row,row);
/* if(val)
table.addRowSelectionInterval(row,row);
else
table.removeRowSelectionInterval(row,row);*/
System.out.println("row::"+row+" column::"+column+" isSelected::"+value);
return checkBox;
}
@Override
public Component getTableCellEditorComponent(JTable table, Object value,
boolean isSelected, int row, int column) {
checkBox.setSelected((boolean)value);
checkBox.setHorizontalAlignment(SwingUtilities.CENTER);
/* if(!isSelected)
table.addRowSelectionInterval(row,row);
else
table.removeRowSelectionInterval(row,row);*/
table.getValueAt(row,column);
return checkBox;
}
@Override
public Object getCellEditorValue() {
return checkBox.isSelected();
}
@Override
public boolean isCellEditable(EventObject anEvent) {
return true;
}
@Override
public boolean shouldSelectCell(EventObject anEvent) {
return false;
}
}
Я хочу, чтобы при выборе флажка была выбрана соответствующая строка в таблице.Когда флажок снят, соответствующая строка в таблице также не отмечена.Когда мышь щелкает по другой строке, состояние выбранных строк не изменяется.Можно ли этого достичь, переписав метод cellrenderer и cellEditor?