1

要素数が等しい2つの配列があります。私はそれをJTable行に入れたいです(以下のASCIIテーブルの例のように)。両方の配列にテーブル モデルとループを使用していますが、別のものをアーカイブしています (印刷画面を参照)。注: ascii テーブルの例のように、両方の配列の要素間の対応を維持したいと考えています。

                    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]});
                        }
                    }

出力は次のとおりです。

ここに画像の説明を入力

しかし、私はこれをアーカイブしたい:

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

それはループによるものだと思いますが、修正方法がわかりません。誰かが私を助けることができますか?そして、お時間をいただきありがとうございます。

4

2 に答える 2

3

最後のループは読むべきです

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

両方の配列の長さが同じであることを常に確認してください。

于 2013-03-13T09:16:40.420 に答える
2

配列が両方とも同じ長さの場合、両方に同じ反復子を使用できます。

for (int i = 0; i < intArray.length; i++) {
    modelPeaks.addRow(new Object[]{intArray[i], intArray1[i]});
}
于 2013-03-13T09:14:22.513 に答える