我有 9 列,我在循环中计算一些数据,并且我想将数据写入不同的列中,如何精确确定哪一列数据?我想更改列 if (wynik <2), but table.setValueAt isn't helpful because it's writing date in the same cell
这就是我想要的:
这就是我得到的:
我的代码中有一部分:
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/.
您有一个循环控制变量
i
,用于索引 arr
元素和列索引 w
。你不应该在循环中间改变i
(不要做i=0;
),否则你的循环将不会停止。或者更糟糕的是,事实上,你无法让读者相信它会停止。始终编写代码以便其他人在您之后阅读和维护它。相反,引入行索引。那么,只有当您的行索引等于表模型中已有的行数时,您才应该添加新行。
如果您打算在转到新列时从
arr
的开头重新开始,我相信正确的设计是双循环:一个外循环,其中 w
从 0 到 8。循环遍历行。那么确保您没有再次写入相同的单元格就不那么困难了。