Добавление столбца в список или вектор - PullRequest
0 голосов
/ 07 мая 2020

Я сохранил в списке набор данных из базы данных. (Он содержит данные одного столбца.) Во втором столбце я хотел бы отобразить для каждой строки 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;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...