2

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

该表有2列和N

第一列有一个字符串,第二列有一个int

我使用的教程是这个

4

2 回答 2

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);
    }
  }
}

于 2012-04-08T10:32:07.280 回答
3

你必须看到“监听数据变化”这一段

通常,您必须获取与表关联的模型并将其称为“getValueAt”方法。它返回与单元格关联的对象,因此您必须将其转换为字符串或整数。比如要获取第二列第三行的值,代码为:

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

于 2012-04-08T10:08:34.383 回答