如何循环遍历JTable的所有行

3
我正在尝试循环遍历jTable中一列的所有行,目前我可以循环遍历一个列,但它只给我前5个值,并且还给了我奇怪的输出。
以下是代码:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // Button to Start
    Object[] columnData = new Object[jTable1.getColumnCount()];
    Object[] rowData = new Object [jTable1.getRowCount()];
    for (int i = 0; i < jTable1.getColumnCount(); i++) {
    columnData[i] = jTable1.getValueAt(i, 4);
    System.out.println(Arrays.toString(columnData));
    }

这是输出结果:

在此输入图片描述

1个回答

3

我认为你在代码中将列迭代用作行号。

jTable1.getValue(i, 4)的参数顺序是行,列。如果你只有五列,那么你只会得到五个值。

尝试更改循环以遍历行并选择第5列。

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // Button to Start
    Object[] columnData = new Object[jTable1.getRowCount()];  // One entry for each row
    Object[] rowData = new Object [jTable1.getRowCount()];
    for (int i = 0; i < jTable1.getRowCount(); i++) {  // Loop through the rows
        // Record the 5th column value (index 4)
        columnData[i] = jTable1.getValueAt(i, 4);  
     }
     System.out.println(Arrays.toString(columnData));

是的,这就是我试图做的。此外,如果要停止显示 null 值,我需要添加一个 'emptyRowFlag' 吗? - Kevin Medjiako
当您将columnData数组打印为字符串时,您将获得所有数据,包括空值。如果您只想看到最后一个值,您可以在循环内执行System.out.println(columnData[i]),或者等到循环结束后一次性打印整个数组。 - Michael McKay
这不起作用,因为它正在寻找一个名为i的类。 - Kevin Medjiako
你必须将其放在定义“i”的循环内。在循环外,你只需像我上面答案中的代码一样引用columnData。 - Michael McKay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接