JTable中java.lang.IndexOutOfBoundsException:无效的范围
问题描述:
我想一个新行添加到空JTable
JTable中java.lang.IndexOutOfBoundsException:无效的范围
这里是我的代码:
Object columnNamesPax[] = {"#","Name","Surname","Sex","Age","Class"};
Object[][] data = new Object[5][columnNamesPax.length];
JTable tablePax = new JTable(new DefaultTableModel(data,columnNamesPax));
DefaultTableModel defaultModel = (DefaultTableModel) tablePax.getModel();
System.out.println(tablePax.getColumnCount());
defaultModel.addRow(new Object[]{"1","2","3","4","5","6"});
控制台输出:
在异常线程“AWT-EventQueue-0”6
java.lang.IndexOutOfBoundsException:无效范围
我不明白为什么有IndexOutOfBoundsException异常,如果列数为6
答
不是答案
您的代码上面并没有显示错误。例如,当我用上面的代码来创建我mcve,不会发生这样的错误:
import javax.swing.*;
import javax.swing.table.*;
public class Foo {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Object columnNamesPax[] = { "#", "Name", "Surname", "Sex",
"Age", "Class" };
Object[][] data = new Object[5][columnNamesPax.length];
JTable tablePax = new JTable(new DefaultTableModel(data,
columnNamesPax));
DefaultTableModel defaultModel = (DefaultTableModel) tablePax
.getModel();
System.out.println(tablePax.getColumnCount());
defaultModel.addRow(new Object[] { "1", "2", "3", "4", "5", "6" });
JOptionPane.showMessageDialog(null, new JScrollPane(tablePax));
}
});
}
}
您刚刚发布的代码不可编译和unrunnable片段只是不削减它,因为他们没有足够的信息让我们看到你的错误。此外,我们不希望看到您完整的代码库,因此通过大量的不相关的代码被淹没,所以再次它是由你来创建和发布您Minimal, Complete, and Verifiable example类似于上面我举的例子(请参阅我提供的链接),其中一个向我们展示了您的问题,这将有助于我们真正帮助您。
您最好在这里向我们展示您的代码。我们不想看到所有这些,而是应该将代码压缩到仍然编译的最小位,没有额外的代码与您的问题无关,但仍然表明您的问题,换句话说,[mcve ](请参阅链接)。 –
上面的代码不显示错误。例如,当我使用上面的代码创建** my ** [mcve]时,不会出现这样的错误:[链接到我的mcve](http://pastebin.com/fPZ8GtUm)。所以**再次**这是由你来创建和发布***你的*** [mcve],所以我们可以帮助你。 –
你接受了一个非答案,发生了什么?请说明您是否或如何解决了您的问题。 –