用于写入数据的精确列

时间:2017-03-06 09:20:03

标签: java jtable tabular

我有9列,我在循环中计算一些数据,我想在不同的列中写入数据,我如何精确地确定哪些列数据?我想要更改列if(wynik< 2),但table.setValueAt没有用,因为它在同一个单元格中写日期

这就是我想要的:

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/

1 个答案:

答案 0 :(得分:0)

我试图理解你的代码,但我的波兰语(就是它?)是不够的,我不能,抱歉。

相反,你将不得不处理一些模糊的建议。您有一个循环控件varable i,用于索引arr元素和列索引w。你不应该在循环中间改变i(不要i=0;),否则你的循环不会停止。或者更糟糕的是,事实上,你并没有让读者相信它会停止。总是编写代码供别人阅读并维护。相反,引入行索引。然后,如果行索引等于表模型中已有的行数,则只应添加新行。

如果您打算从arr开始到新列时重新开始,我认为正确的设计是双循环:w从0开始的外循环在行上方有一个内循环。那么确保你不再写同一个单元格并不是那么难。