java - 实现 ArrayLists 到 Table 模型

标签 java swing arraylist jtable abstracttablemodel

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

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

我想将这个数组列表显示到一个 jTable 中,我通过使用 defaultTableModel 和调用 setModel() 成功地做到了这一点。

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

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
}

关于java - 实现 ArrayLists 到 Table 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10264169/

相关文章:

java - 我在创建这个 android float 气泡动画时做错了什么?

java - 将一些单词作为 block 添加到 JTextarea

java - 如何在数组列表中查找数组列表的索引?

java - 将包含 ArrayList 的对象的 ArrayList 写入 CSV

java - 根据 JComboBox 选择添加 JList 项目

java - ArrayList 删除不起作用?

java - 如何在另一个类中调用Java类中的变量

java - 递归二叉搜索树修剪.. x=change(x)

java - 挂线程 java.lang.ClassLoader.findBootstrapClass

java - 必须在 EDT 中调用 AWT 类中的所有方法,即非 Swing 类中的方法吗?