Я сохранил в списке набор данных из базы данных. (Он содержит данные одного столбца.) Во втором столбце я хотел бы отобразить для каждой строки JCheckBox (строки с отмеченными флажками будут впоследствии сохранены в базе данных).
Как я могу расширить / добавить список / вектор с помощью «Boolean.TRUE "или" Boolean.False "в качестве значения для второго столбца?
Извините, я чертов новичок ie ... большое спасибо
class SetVehicleCategoryTableModel extends AbstractTableModel {
private List<Category> all = null;
Vector<Object> tableData;
Vector<String> tableHeaders;
public SetVehicleCategoryTableModel(){
initModel();
}
public void initModel(){
tableData = new Vector<Object>();
// TableModel's column names
tableHeaders = new Vector<String>();
tableHeaders.add("Category");
tableHeaders.add("Selection");
// Database call
all = new ReadCategory().allCategories();
// TableModel's data
// converting List<Category> -> Vector<Object> tableData
for(Object o : all) {
tableData.addElement(o);
//tableData.add(,o);
// debug:
System.out.println("item added");
}
//debug:
System.out.println(tableData.size());
for(Object obj : tableData){
System.out.println(obj.toString());
}
}
@Override
public int getRowCount() {
return tableData.size();
}
@Override
public int getColumnCount() {
return tableHeaders.size();
}
@Override
public String getColumnName(int column){
return tableHeaders.elementAt(column);
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return tableData.elementAt(rowIndex);
//return ((Vector<Object>) tableData.get(rowIndex)).get(columnIndex);
}
public void removeRow(int row) {
tableData.removeElementAt(row);
fireTableDataChanged();
}
public void insertRow(Object aValue) {
tableData.addElement(aValue);
fireTableDataChanged();
//fireTableRowsInserted(index, index);
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex){
Category edit = (Category) tableData.elementAt(rowIndex);
edit.setName((String) aValue);
fireTableCellUpdated(rowIndex, columnIndex);
//fireTableRowsUpdated(rowIndex, columnIndex);
}
// This method is used by the JTable to define the default
// renderer or editor for each cell. For example if you have
// a boolean data it will be rendered as a check box. A
// number value is right aligned.
/*@Override
public Class<?> getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
//return data[0][columnIndex].getClass();
}*/
public Class<?> getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
}