gpt4 book ai didi

java - ActionListener 无法通过按钮将数据从 JList 移动到其他 JList

转载 作者:行者123 更新时间:2023-12-01 14:43:15 27 4
gpt4 key购买 nike

我的程序是基于API的。我有一个 JList 和一个有一些名称的模型。还有一个用于获取所选项目的 selectListener 和一个按钮,用于将该项目发送到另一个窗口,该窗口还有另一个这是我的第一个列表:

第一个列表(窗口)并将项目发送到另一个列表。

final DefaultListModel<String> Names = new DefaultListModel<String>();
final JList<MyAPI> Places = new JList(Names);

private JList<MyAPI> locList;
private DefaultListModel<MyAPI> favourites;

public AddLocation(JList<MyAPI> locList, DefaultListModel<MyAPI> favourites){
this.locList = locList;
this.favourites = favourites;
}


addThis.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
Object chose = Places.getSelectedValue();
favourites.addElement((MyAPI) chose); // error in this line
}
});

这是应将所选项目添加到此处的另一个窗口:

final DefaultListModel<MyAPI> favourites;
final JList<MyAPI> locList;

favourites = new DefaultListModel<MyAPI>();
locList = new JList<MyAPI>(favourites);

现在两个窗口都会加载,并且第一个列表会加载其名称。但是当我按下添加按钮时,它会给出错误并指向这一行:

favourites.addElement((MyAPI) chose);

如何解决?

最佳答案

您的第一个模型定义如下:

final DefaultListModel<String> Names ...;

您的第二个模型定义如下:

final DefaultListModel<MyAPI> favourites;

您的第一个列表模型包含 String实例,您的第二个模型包含 MyAPI实例。所以当执行这一行时:

favourites.addElement((MyAPI) chose);

您正在尝试创建 MyAPI出一个String ,这不起作用,可能是 ClassCastException被抛出。

您需要将第二个列表模型声明为 final DefaultListModel<String> favourites;或者您创建 MyAPI 的实例基于所选的String (new MyAPI(chose)?)。

关于java - ActionListener 无法通过按钮将数据从 JList 移动到其他 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726359/

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