嗨,我有一个名为Pets的类的数组列表,该类具有以下变量

private String name;
private String species;
private int age;


我想将此数组列表显示到jTable中,并通过使用defaultTableModel并调用setModel()成功完成了此操作。

但是我需要为Jtable添加排序和过滤功能。我看了一下Java教程,他们正在创建AbstractTableModel的子类以进行排序和过滤。但是,他们使用数组来存储数据。所以我尝试修改代码以使用arraylist istead,但是我被这种方法卡住了

public Object getValueAt(int row, int col) {
    return data[row][col];
}


如何从arraylist的一个对象中获取所有值?

任何帮助将不胜感激。提前致谢。

最佳答案

您的ArrayList是否保留一行是它自己的对象类型?如果是这样,并且如果ArrayList是通用ArrayList<RowItem>,则可以执行以下操作:

@Override
public Object getValueAt(int row, int col) {
  if (row > getRowCount()) {
     // throw an exception
  }
  RowItem rowItem = rowItemList.get(row);
  switch (col) {
  case 0:
     return rowItem.getName();
  case 1:
     return rowItem.getLastSpecies();
  case 2:
     return rowItem.getAge();
  }
  return null; // or throw an exception
}

10-06 07:10