gpt4 book ai didi

java - 选择对象后从可滚动列表中删除对象

转载 作者:行者123 更新时间:2023-12-02 12:21:48 24 4
gpt4 key购买 nike

我有 2 个可滚动列表,list1 和 list2。

两者在列表中都具有相同的对象,但当在列表 1 中选择该对象时,我需要从列表 2 中删除该对象。

这是我的代码:

   private void displayList2()
{
Car selectedCar = (Car)list1.getSelectedValue(); //gets the selected value from list1 which is working fine.
List<String> carsData = new ArrayList<String>();
for (Car eachcar : cars)
{
if (cars.equals(selectedCar))
{
list2.remove(selectedCar);
}
}
}

它目前从可滚动列表(list1)中获取SelectedValue,该列表工作正常,但不会从列表2中删除

编辑:

我现在已经稍微修改了代码,看起来像这样,但仍然不起作用:

   private void displayList2()
{
Car selectedCar = (Car)list1.getSelectedValue(); //gets the selected value from list1 which is working fine.
List<String> carsData = new ArrayList<String>();
for (Car eachcar : cars)
{
if (carsData.equals(selectedCar))
{
carsData.remove(selectedCar);
}
list2.setListData(cars);
}
list2.setSelectedIndex(0);
}

没有显示任何错误,两个可滚动列表都有效,并且 selectedIndex 为 0,但是当单击 list1 时,它仍然不会从 list2 中删除对象

最佳答案

您检查 CarListCar 之间的相等性:

 if (cars.equals(selectedCar))

它永远不会为真

您应该将所选的 Car 与迭代的当前 Car 进行比较:

 if (eachcar.equals(selectedCar))

编辑后,我认为您需要从 JList 中删除数据
为此,请使用迭代器删除 cars 中选定的元素:

 for (Iterator<Car> it = cars.iterator(); it.hasNext();){
Car eachcar = it.next();
if (eachcar.equals(selectedCar)){
it.remove();
}
}

然后在循环之后,调用list2.setListData(cars);来更新JList的内容。

关于java - 选择对象后从可滚动列表中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45711574/

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