我有两个数组,元素数量相等。我想将其放在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             +
+--------------------+--------------------+


我认为这是从循环开始的,但是我不知道该如何解决。有人可以帮我吗?在此先感谢您的宝贵时间。

最佳答案

最后一个循环应读取

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


始终确保两个数组的长度相同。

10-06 08:57