如何访问JTable中每个单元的数据

时间:2012-04-08 10:00:02

标签: java swing jtable

我已经使用了一个教程来了解如何实现JTable,但我不知道如何准确访问每个单元格的数据以提取用户放入的数据。

该表包含 2 列和 N

在第一列中有一个 String ,第二列有一个 int

我使用的教程是this

2 个答案:

答案 0 :(得分:4)

每个JTable都有一个与之相关的数据模型。用户可以向此数据模型添加数据(例如,通过调用javax.swing.table.TableModel.setValueAt(Object, int, int)方法),然后JTable显示它们。为了处理来自JTable的数据,可以使用以下方法:


JTable t = new JTable(/* set some table-model that will contain the data */);
...
/* get some table-model that will contain the data */
TableModel tm = t.getModel();
for (int i = 0; i < tm.getRowCount(); i++) {
  for (int j = 0; j < tm.getColumnCount(); j++) {
    Object o = tm.getValueAt(i, j);
    if (o instanceof Integer) {
      System.out.println((Integer)o);
    } else if (o instanceof String) {
      System.out.println((String)o);
    }
  }
}

答案 1 :(得分:3)

您必须看到段落“Listening for Data Changes

通常,您必须获取与表关联的模型并将其称为“getValueAt”方法。它返回与单元格关联的Object,因此您必须将其强制转换为String或Integer。 例如,如果要获取第二列和第三行的值,则代码为:

  

(整数)model.getValueAt(2,1)