从表中获取值

时间:2011-08-10 08:55:13

标签: java swing jtable

在我的下面的代码中,我浏览一个表并查找包含蓝色图标的列(如果是这种情况),我计算具有蓝色图标并包含单词“ble”的行数 但我所做的并不像我喜欢的那样工作。

for (int i = 0; i <myTable.getRowCount(); i++)
     {
       myTable.selectCell(i, 1);
       if (myTable.getIcon(i, 0) == ("blue.gif"))
       {

        if (myTable.getRowValue(i, 0).contains("ble."))
        {
         int counter = 0;
         counter = counter + 1;
         System.out.println(counter);

        }

     }
}

4 个答案:

答案 0 :(得分:0)

这是因为在向计数器添加1之前将计数器重置为0,因此计数器始终显示为1.

答案 1 :(得分:0)

根据我的意愿不起作用意味着你得到所有1,我猜?这是因为您每次都在if内重置计数器:

for (...) {
    ...
    if (...) {
        int counter = 0; // you do this every time
    }
    ...
}

相反,将计数器移出循环:

int counter = 0; // only do it once, here
for (...) {
    ...
    if (...) {
        counter = counter + 1
    }
    ...
}

答案 2 :(得分:0)

counter变量必须在for

之上声明
int counter = 0;
for (int i = 0; i <myTable.getRowCount(); i++) {
    myTable.selectCell(i, 1);
    if (myTable.getIcon(i, 0) == ("blue.gif")) {
        if (myTable.getRowValue(i, 0).contains("ble.")) {
           counter++;
           System.out.println(counter);
        }
    }
}

答案 3 :(得分:-1)

看到你已经使用'i'作为你的计数器变量,就没有必要再制作另一个名为'counter'的了。

   for (int i = 0; i <myTable.getRowCount(); i++) {
        myTable.selectCell(i, 1);
        if (myTable.getIcon(i, 0) == ("blue.gif")) {
            if (myTable.getRowValue(i, 0).contains("ble.")) {
               System.out.println(i + "");
            }
        }
    }