Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JTable getModel().setValueAt从数组中删除第一个元素_Java_Arrays_Swing_Jtable - Fatal编程技术网

Java JTable getModel().setValueAt从数组中删除第一个元素

Java JTable getModel().setValueAt从数组中删除第一个元素,java,arrays,swing,jtable,Java,Arrays,Swing,Jtable,我在更新JTable的内容时遇到了一个奇怪的bug。我有一个二维数组,它存储表中要显示的值的数组(我一次只显示一行数据)。当用户单击一个按钮时,将显示下一组值(以及下一组列标题),当用户单击另一个按钮时,将显示上一组值。问题是,我第一次在二维数组中的第一个数组上调用getModel().setValueAt,它就被删除了。 下面是更新JTable的代码: for(int i = 0; i < formattedData[displayedDataSet].length - 1; i++)


我在更新
JTable
的内容时遇到了一个奇怪的bug。我有一个二维数组,它存储表中要显示的值的数组(我一次只显示一行数据)。当用户单击一个按钮时,将显示下一组值(以及下一组列标题),当用户单击另一个按钮时,将显示上一组值。问题是,我第一次在二维数组中的第一个数组上调用
getModel().setValueAt
,它就被删除了。

下面是更新JTable的代码:

for(int i = 0; i < formattedData[displayedDataSet].length - 1; i++) {
                    TableColumn col = displayTable.getTableHeader().getColumnModel().getColumn(i);
                    col.setHeaderValue(WeatherData.WEATHER_MAP_KEYS[displayedDataSet * 5 + i]);
                    displayTable.getTableHeader().resizeAndRepaint();
                    displayTable.getModel().setValueAt(formattedData[displayedDataSet][i], 0,  i);
}

for(String s: formattedData[0]) {
                System.out.println(s);
}
for(int i=0;i

我希望输出是
formattedData
中的第一个数组,但它是第二个数组。但是,使用
displayTable.getModel().setValueAt注释掉该行将导致输出正确的结果。为什么会发生这种情况,我如何在保留数组的同时更新
JTable

只需创建一个新的
TableModel
并将其与为我解决此问题的现有
JTable
进行对比,可能会更容易。谢谢如果你在下面写一个答案,这个问题会对其他人帮助更多。