Java 如何获取从jList中选择的对象
我在Netbeans构建了一个Java项目。 我有一个表单,表单中有一个jList,其中填充了一个对象(收藏夹)。 我还有一个按钮,我想在按下按钮时删除jList上的选定项目 我正在尝试以下代码,但出现错误Java 如何获取从jList中选择的对象,java,database,netbeans,bind,jlist,Java,Database,Netbeans,Bind,Jlist,我在Netbeans构建了一个Java项目。 我有一个表单,表单中有一个jList,其中填充了一个对象(收藏夹)。 我还有一个按钮,我想在按下按钮时删除jList上的选定项目 我正在尝试以下代码,但出现错误 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int selectedIndex = jList1.ge
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int selectedIndex = jList1.getSelectedIndex();
ListModel lModel= jList1.getModel();
Favorite item = (Favorite)lModel.getElementAt(selectedIndex);
System.out.println("name= "+ item.getName());
}
我得到以下错误:
线程“AWT-EventQueue-0”java.lang.ClassCastException中的异常:无法将java.lang.String转换为model.FavoriteList
在my.mymoviesamn.FavoriteTestForm.jbutton1AActionPerformed(FavoriteTestForm.java:104)中
在my.mymoviesamn.FavoriteTestForm.access$000(FavoriteTestForm.java:15)
在my.mymoviesamn.FavoriteTestForm$1.actionPerformed(FavoriteTestForm.java:51)
在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
有什么问题?
当我从jList中选择一个项目时,我希望获取该对象(收藏夹)并将其删除。
问题是我无法从jList获取该对象。您需要创建单独的空
列表
,并在其中插入在删除之前选中的对象
当ClassCastException
出现时,您需要检查ListModel下的ITM类型,它必须是字符串
,这就是出现此错误的原因
您应按如下方式制作自定义ListModel:
class ListModel extends AbstractListModel {
private Favorite mfavorite;
public ListModel(Favorite favorite) {
mfavorite = favorite;
}
public Favorite getFavorite() {
return mfavorite;
}
public Object getElementAt(Favorite favorite) {
return favorite;
}
}
假设模型包含收藏夹
对象。它不是。它包含字符串
因此,填充该模型的代码的其他部分出错了
Favorite item = (Favorite)lModel.getElementAt(selectedIndex);