我已经使用了一个教程来了解如何实现JTable,但我不知道如何准确访问每个单元格的数据以提取用户放入的数据。
该表包含 2 列和 N 行
在第一列中有一个 String ,第二列有一个 int
我使用的教程是this
答案 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)