【发布时间】:2014-05-04 05:55:47
【问题描述】:
我有一个对象(名称、一些数字等)的 ArrayList,我可以在 JTable(名称等)上打开并查看它。我可以将一个对象添加到 jtable 并将其添加到 arraylist。当我尝试从 JTable 中删除一个对象时,它也不会在我的 ArrayList 上删除。我制作了这个 ActionListener 并尝试了两种删除对象的方法(使用 remove() 和迭代器)
class ButtonRemovePersoAL implements ActionListener {
public void actionPerformed(ActionEvent e) {
int numerorows = table.getSelectedRows().length;
for(int i=0; i < numerorows ; i++ ) {
String Name = (String) table.getModel().getValueAt(table.getSelectedRow(), 0); // I search for the first case of the JTable to catch the Object to erase
for(Object object : myarraylistofobjects) {
if(Name.equals(object.getName())) {
myarraylistofobjects.remove(object);
}
}
// OR
Iterator<Object> itr = myarraylistofobjects().iterator();
while (itr.hasNext()) {
Object object = itr.next();
if (Name.equals(object.getName())) {
itr.remove();
}
}
tablemodel.removeRow(table.getSelectedRow()); // I delete finally my row from the jtable
}
}
}
我错过了什么? 感谢您的帮助。
【问题讨论】:
-
请遵循 Java 大小写约定。另外,
Name的值是多少,您确定您的 if 条件计算结果为true?你试过调试器吗? -
可以用
Vector代替ArrayList吗?DefaultTableModel有一个 constructor forVector,它将使其他一切变得更加简单。
标签: java swing arraylist iterator actionlistener