[英]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.