[英]ActionListener does not work to move data from on JList to the Other JList by the button
我的程序基于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);
您正在尝试使用String
制作MyAPI
,但该MyAPI
无法正常工作,并且可能引发了ClassCastException
。
您需要将第二个列表模型声明为final DefaultListModel<String> favourites;
或者您基于所选的String
( new MyAPI(chose)
?)创建MyAPI
的实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.