问题描述
你好,我想显示我用 for 循环尝试过的表中每一行的索引号,但我没有成功,你能告诉我怎么做吗? 我需要一个逻辑来返回“case 0: return getRowCount();”行中每一行的编号它只返回总行数
public class TableModel extends AbstractTableModel{
UsersDao ud = new usersDao();
private List<Users> users;
public TableModel() throws Exception {
this.users = (ArrayList<Users>)ud.getUsersList();
}
private DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
@Override
public int getRowCount() {
return users.size();
}
@Override
public int getColumnCount() {
return 10;
}
@Override
public Object getValueAt(int rowIndex,int columnIndex) {
Users u = users.get(rowIndex);
switch(columnIndex){
case 0: return getRowCount();
case 1: return u.getName();
case 2: return u.getAge();
case 3: return u.getGender();
default: return "";
}
}
public String getColumnName(int column){
switch(column){
case 0: return "NO";
case 1: return "NAME";
case 2: return "AGE";
case 3: return "GENDER";
default: return "";
}
}
public void addUser(Users u){
users.add(u);
fireTableRowsInserted(users.size()-1,users.size()-1);
}
public void deletePatient(Users u){
users.remove(p);
fireTableRowsInserted(users.size()-1,users.size()-1);
}
}
解决方法
我认为你的 getValueAt 有问题
@Override
public Object getValueAt(int rowIndex,int columnIndex) {
Users u = users.get(rowIndex);
switch(columnIndex){
case 0: return rowIndex; // return rowIndex rather than the total number of rows
case 1: return u.getName();
case 2: return u.getAge();
case 3: return u.getGender();
default: return "";
}
}