精确列写入数据

问题描述 投票:0回答:1

我有 9 列,我在循环中计算一些数据,并且我想将数据写入不同的列中,如何精确确定哪一列数据?我想更改列 if (wynik <2), but table.setValueAt isn't helpful because it's writing date in the same cell

这就是我想要的:

https://imgur.com/a/vHIiN

这就是我得到的:

https://imgur.com/a/qG3pv

我的代码中有一部分:

int[] arr = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
              20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
              36, 37, 38, 39, 40 };

double[] walce = { 257.175, 263.525, 304.8, 323.85, 333.375, 396.875, 415.925,
                   454.025, 638.175 };
int w = 0;

for (int i = 0; i < arr.length; i++) {
    wynik = (walce[w]/arr[i])-wartoscWysokoscEtykiety;

    model.addRow(new Object[]{
        wynik,
    });

    if (wynik < 2) {
        table.setValueAt(wynik, i, w);
        w = w +1;
        i=0;
    }

这是我的完整代码:wklej.org/id/3057183/.

java jtable tabular
1个回答
0
投票

您有一个循环控制变量

i
,用于索引
arr
元素和列索引
w
。你不应该在循环中间改变
i
(不要做
i=0;
),否则你的循环将不会停止。或者更糟糕的是,事实上,你无法让读者相信它会停止。始终编写代码以便其他人在您之后阅读和维护它。相反,引入行索引。那么,只有当您的行索引等于表模型中已有的行数时,您才应该添加新行。

如果您打算在转到新列时从

arr
的开头重新开始,我相信正确的设计是双循环:一个外循环,其中
w
从 0 到 8。循环遍历行。那么确保您没有再次写入相同的单元格就不那么困难了。

© www.soinside.com 2019 - 2024. All rights reserved.