2017-03-06 17 views
0

我有9列,我計算循環中的一些數據,我想在不同的列中寫入數據,我如何精確確定哪些列數據是?我想更改列,如果(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/

+0

我不太明白你的要求。您能準確指出您希望數據如何顯示在您的'JTable'中嗎? –

+0

將你的循環控制變量'i'重置爲0是危險的,並且肯定會產生不可讀的代碼。你的循環會終止嗎? –

+0

另外你的代碼的當前行爲與期望的不同?請具體說明。 –

回答

0

我試圖理解你的代碼,但我的波蘭語(是嗎?)不足,我不能,對不起。

相反,你將不得不做一些模糊的建議。您有一個循環控制可用,i,您用於索引您的arr元素和列索引w。你不應該在循環中間改變i(不要做i=0;)或者你的循環不會停止。或者更糟糕的是,事實上,你不能說服讀者它會停止。總是寫你的代碼讓別人在你之後閱讀和維護它。相反,引入一個行索引。那麼如果行索引等於表模型中已有的行數,則只應添加一個新行。

如果你打算從arr開始時重新開始一個新的列,我相信正確的設計是一個雙循環:w從0到8的外循環。內循環在行上。那麼確保你不再寫同一個單元應該不那麼困難。