我有一个显示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);
我无法理解为什么我在这条线上得到例外 - 它对我来说是正确的......任何人都有任何想法?