Java-向JTable添加可编辑的行

时间:2014-06-27 06:49:53

标签: java swing jtable indexoutofboundsexception defaulttablemodel

我有一个显示JTable和按钮的Java GUI。单击该按钮时,我想向表中添加一个新的可编辑单元格行。我正在尝试使用以下ActionListener()执行此操作,我已将其分配给按钮:

addBtn.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        System.out.println("'Add' button pressed. ");
        DefaultTableModel model = (DefaultTableModel)jEntityFilterTable.getModel();
        model.addRow(new Object[]{"Site", "Application", "Entity"});
        System.out.println("--- ActionListener added to 'addBtn' ---");
    }
});

在控制台中,当我点击按钮时,我看到消息说“按下''添加'按钮。”...然而,我得到一个例外,其中说:

  

线程“AWT-EventQueue-0”中的异常java.lang.ArrayIndexOutOfBoundsException:0> = 0

我认为这发生在model.addRow...行,因为这是我使用过阵列的唯一地方,但我不知道为什么我会收到这个错误 - 我正在创建一个空对象数组,并没有定义它的大小,所以无论我添加了多少元素,它都应该没有索引问题 - 它是一个动态大小的数组。

有谁可以指出我在哪里出错?

编辑27/06/2014 @ 09:50

我尝试稍微更改方法,所以我现在有以下代码:

addBtn.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){
        System.out.println("'Add' button pressed. ");
        DefaultTableModel model = (DefaultTableModel)jEntityFilterTable.getModel();

        Vector<String> row = new Vector<String>();
        row.add("Site");
        row.add("Application");
        row.add("Entity");

        System.out.println("Row Count: " + model.getRowCount());
        System.out.println("1st Column: " + model.getColumnName(0));
        System.out.println("Column Count: " + model.getColumnCount());

        model.addRow(row);

        System.out.println("--- ActionListener added to 'addBtn' ---");
    }
});

当我运行我的应用程序,然后单击我添加了ActionListener()的按钮时,我在控制台中看到以下输出:

  按下

'添加'按钮。

     

行数:0

     

第1栏:现场

     

列数:3

     

线程“AWT-EventQueue-0”中的异常java.lang.ArrayIndexOutOfBoundsException:0&gt; = 0

看来这个异常发生在这一行:

model.addRow(row);

我无法理解为什么我在这条线上得到例外 - 它对我来说是正确的......任何人都有任何想法?

0 个答案:

没有答案