繁体   English   中英

ActionListener无法通过按钮将数据从JList移至Other JList上

[英]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; 或者您基于所选的Stringnew MyAPI(chose) ?)创建MyAPI的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM