2013-03-13 64 views
1

我有兩個數組,它們的元素數量相等。我想把它放在一個JTable行(例如從波紋管的ascii表格示例中)。我使用表模型和兩個數組的循環,但我存檔其他東西(請參閱打印屏幕)。 注意:我想維護兩個數組的元素之間的對應關係,就像在ascii表格示例中一樣。把兩個數組放到Jtable行

    Integer[] intArray = new Integer[stringArray.length]; 
        for (int i = 0; i < stringArray.length; i++) { 
         intArray[i] = Integer.parseInt(stringArray[i]); 
        } 

        System.out.println(Arrays.toString(intArray)); //output [285, 715, 1437, 1749] 


        Integer[] intArray1 = new Integer[stringArray1.length]; 
        for (int i = 0; i < stringArray1.length; i++) { 
         intArray1[i] = Integer.parseInt(stringArray1[i]); 
        } 

        System.out.println(Arrays.toString(intArray1)); //output [0, 0, 1087, 0] 


        DefaultTableModel modelPeaks = new DefaultTableModel(); 
        JTable table = new JTable(modelPeaks); 


        modelPeaks.addColumn("1st Column"); 
        modelPeaks.addColumn("2nd Column"); 


        for (int i = 0; i < intArray.length; i++) { 
         for (int j = 0; j < intArray1.length; j++) { 

          modelPeaks.addRow(new Object[]{intArray[i], intArray1[j]}); 
         } 
        } 

輸出是:

enter image description here

但我想歸檔此:

+--------------------+--------------------+ 
+ 1st Column  + 2nd Column  + 
+--------------------+--------------------+ 
+ 285    +  0    + 
+ 715    +  0    + 
+ 1437   +  1087   + 
+ 1749   +  0    + 
+--------------------+--------------------+ 

我認爲這是從循環,但我無法弄清楚如何要解決這個問題。有人可以幫助我嗎?並提前感謝您的時間。

+0

看起來像他們有不相同的arrays.size()/ lenght(),必須從兩個陣列同時出峯,並與測試如果循環沒有outof .... – mKorbel 2013-03-13 09:14:24

+0

他們有相同的長度() (請參閱輸出註釋),但我的錯誤是我使用了兩個循環。糾正我,如果我錯了或誤解了。謝謝你,爵士。 – 2013-03-13 09:26:53

回答

3

最後一個循環應該讀

for (int i = 0; i < intArray.length; i++) { 
    modelPeaks.addRow(new Object[]{intArray[i], intArray1[i]}); 
} 

務必確保這兩個數組的長度相同。 (

2

如果陣列都具有相同的長度,你可以使用兩個相同的迭代器:

for (int i = 0; i < intArray.length; i++) { 
    modelPeaks.addRow(new Object[]{intArray[i], intArray1[i]}); 
}