我有一个列出arrayList 的JList。当我按下名为 delete 的按钮时,我想从列表中删除选定的元素(最好是数组列表)。目前我有以下代码,但是它不起作用。我的意思是,如果选择了一个元素,它似乎什么都不做,并且当什么都没有选择时它给了我一个 ArrayIndexOutOfBoundsException 。
private JList listOrders = new JList(arrayList.toArray());
public void myList() {
listOrders.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION );
panelForLists.add(listOrders);
}
public void updateList() {
listOrders.setListData(arrayList.toArray());
listOrders.revalidate();
listOrders.repaint();
}
public void actionPerformed(ActionEvent event) {
if (event.getSource() == deleteItem) {
int index = listOrders.getSelectedIndex();
listOrders.remove(index);
updateList();
}
}
我认为这可能是因为我必须在某处添加 ListSelectionListener,但我不知道如何工作。我已经在互联网上搜索了很长时间的答案,这就是我从 JList oracle 演示中得出的结论。
非常感谢!