我的问题与JTable和DefaultTableModel有关.
我的任务是创建JTable,显示带有复选框的数据……我成功完成了..
但是我想从复选框中选择的JTable中删除行…我知道这已被问过太多次了…我需要使用removeRow(int row)方法来删除…但是当我执行语句时
我的任务是创建JTable,显示带有复选框的数据……我成功完成了..
但是我想从复选框中选择的JTable中删除行…我知道这已被问过太多次了…我需要使用removeRow(int row)方法来删除…但是当我执行语句时
DefaultTableModel model=(DefaultTableModel)jTable1.getModel(); int totalrows=model.getRowCount(); for (int i = totalrows - 1 ; i >= 0; i--) { Boolean checked = (Boolean) jTable1.getModel().getValueAt(i,8); if (checked) { ((DefaultTableModel)jTable1.getModel()).removeRow(i); } }
它总是从getRowCount()方法返回0,所以它不会进入循环内部..
该表已经有行.
我的TableModel类如下
public class tabmod extends DefaultTableModel { public tabmod(Object rowData[][],Object columnNames[]) { super(rowData,columnNames); } @Override public Class getColumnClass(int col) { if (col == 8) return Boolean.class; return super.getColumnClass(col); //other columns accept String values } @Override public boolean isCellEditable(int row,int col) { return col == 8; } }
而我正在从我的JFrame中调用它
tabmod tab=new tabmod(t,header); final JTable table = new JTable(tab); table.setFillsViewportHeight(true); jScrollPane1.add(table); jScrollPane1.setViewportView(table);
我没有得到这里的问题…..