JTable java.lang.IndexOutOfBoundsException:无效范围

时间:2015-10-19 14:30:33

标签: java swing jtable

我想在空JTable

中添加一个新行

这是我的代码:

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:无效范围

如果列数为6,我不明白为什么会有IndexOutOfBoundsException。

1 个答案:

答案 0 :(得分:1)

不是答案

上面的代码未显示错误。例如,当我使用上面的代码创建 my 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));
            }
        });
    }
}

您刚发布无法编辑且不可用的代码片段并不是因为它们没有包含足够的信息以便我们查看您的错误而无法删除它。此外,我们不希望看到您的完整代码库,因而被大量不相关的代码所淹没,因此再次由您来创建并发布 < em>你的 Minimal, Complete, and Verifiable example类似于我上面的例子(请同时查看我提供的链接),这个链接向我们展示了您的问题,希望我们能够实际上帮助你。