【问题标题】:How to access the data of each cell in a JTable如何访问 JTable 中每个单元格的数据
【发布时间】:2012-04-21 03:53:44
【问题描述】:

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

表格有 2 列和 N

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

我用过的教程是this

【问题讨论】:

  • 您是否尝试过使用public Object getValueAt(int row, int col) 方法?
  • 你试过什么?解释什么不起作用并发布完整的 StackTrace(如果有的话)。也展示一些你的代码(不是所有的,只是有趣的部分!)。

标签: java swing jtable


【解决方案1】:

你必须看到“Listening for Data Changes”这个段落

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 2018-08-02
      • 2018-05-23
      • 2019-01-10
      • 2014-09-01
      • 1970-01-01
      • 2019-10-15
      相关资源
      最近更新 更多