gpt4 book ai didi

java - 从 JList 中删除元素不起作用

转载 作者:行者123 更新时间:2023-12-01 06:46:34 24 4
gpt4 key购买 nike

我有一个列出 arrayList 的 JList。当我按下名为“删除”的按钮时,我想从列表(最好是数组列表)中删除所选元素。目前我有以下代码,但它不起作用。我的意思是,如果选择了一个元素,它似乎什么也不做,并且当没有选择任何元素时,它会给我一个 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 演示中得到的结果。

非常感谢!

最佳答案

您似乎要从列表中删除该项目,然后在调用 updateList() 时将其重新添加回来,并且此方法调用 setListData(...)在 JList 上。我认为你应该摆脱这种方法。 ListModel 应保存数据,并且在更改数据后无需在 JList 上调用 revalidate()repaint()

关于java - 从 JList 中删除元素不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10391000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com