java - JTable 中的行计数器

标签 java

在下面的代码中,我浏览一个表并计算包含“ble”、“cle”、“tion”的行数;我的计数器在 x=1 处打印预期值,但在 x=2 和 3 处,计数器的值是错误的。

我正在使用 JTable 并尝试计算 x 的每个值包含上述字符串的行数。

预期值:
x=1: 计数器1=5 计数器2=5 计数器3=6
x=2: 计数器1=10 计数器2=10 计数器3=6
x=3: 计数器1=20 计数器2=17 计数器3=6

int counter1 = 0;
int counter2 = 0;
int counter3 = 0;
for (int x = 1; x < 4; x++)
{
  myTable.goToValue(x);               
  for (int i = 0; i < myTable.getRowCount(); i++)
  {    
    if (myTable.getIcon(i, 0).matches("blue.gif"))
    {                                   
      if (myTable.getRowValue(i, 1).contains("ble."))
      {
        counter1++;
      }    
      if (myTable.getRowValue(i, 1).contains("cle."))
      {    
        counter2++;
      }
      if (myTable.getRowValue(i, 1).contains("tion."))
      {
        counter3++;
      }
    }
  }
  System.out.println(counter1);
  System.out.println(counter2);
  System.out.println(counter3);
}

最佳答案

将计数器变量的初始化移至 for 循环内。

每次循环时,您都需要将值重置为零。计数器会继续计数,因为您只在过程开始时将它们设置为零,而不是在 x=2 和 x=3 之前。

更改此:

int counter1 = 0;
int counter2 = 0;
int counter3 = 0;
for (int x = 1; x < 4; x++) {
    myTable.goToValue(x);

对此:

for (int x = 1; x < 4; x++) {
    int counter1 = 0;
    int counter2 = 0;
    int counter3 = 0;
    myTable.goToValue(x);

关于java - JTable 中的行计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7012716/

相关文章:

java - 在 JavaFX 8 中重新对齐 AnchorPane 中的组件

java - 如何更改 MaterialCalendarView 中日历日期的背景颜色

java - 如何仅对特定行禁用 log4j 时间戳

java - 在Spring MVC中设置拦截器

java - android中 float 到字符串的转换

java - 缓存键生成

java - 以编程方式将草稿保存在 Gmail 草稿文件夹中

java - 矩形类型的 width() 方法未定义

java - 访问随机分配的对象

java - JUnit 模拟,我应该使用哪个工具?