簡體   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