如何获取从 jList 中选择的 object
How to get the object that is selected from a jList
我在 Netbeans 构建了一个 Java 项目。
我有一个表格,在表格内我有一个 jList,其中填充了 object(收藏夹)。
我还有一个按钮,我想在按下按钮时删除 jList 中的 selected 项目。
我正在尝试以下代码,但出现错误。
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());
}
我收到以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to model.FavoriteList
at my.mymoviesamn.FavoriteTestForm.jButton1ActionPerformed(FavoriteTestForm.java:104)
at my.mymoviesamn.FavoriteTestForm.access[=12=]0(FavoriteTestForm.java:15)
at my.mymoviesamn.FavoriteTestForm.actionPerformed(FavoriteTestForm.java:51)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
有什么问题?
当我 select jList 中的一个项目时,我想得到那个 object (收藏夹)并删除它。
问题是我无法从 jList.
得到 object
您需要创建单独的 Empty List
并在其中插入在删除之前选择的对象。
随着 ClassCastException
的到来,您需要检查 ListModel 下的 itms 类型,它必须是 String
这就是您收到此错误的原因。
您应该像下面这样自定义 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);
您假设您的模型包含 Favorite
个对象。它不是。它包含字符串。
因此 填充 那个模型的代码的其他部分做错了。
我在 Netbeans 构建了一个 Java 项目。 我有一个表格,在表格内我有一个 jList,其中填充了 object(收藏夹)。 我还有一个按钮,我想在按下按钮时删除 jList 中的 selected 项目。
我正在尝试以下代码,但出现错误。
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());
}
我收到以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to model.FavoriteList at my.mymoviesamn.FavoriteTestForm.jButton1ActionPerformed(FavoriteTestForm.java:104) at my.mymoviesamn.FavoriteTestForm.access[=12=]0(FavoriteTestForm.java:15) at my.mymoviesamn.FavoriteTestForm.actionPerformed(FavoriteTestForm.java:51) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
有什么问题? 当我 select jList 中的一个项目时,我想得到那个 object (收藏夹)并删除它。 问题是我无法从 jList.
得到 object您需要创建单独的 Empty List
并在其中插入在删除之前选择的对象。
随着 ClassCastException
的到来,您需要检查 ListModel 下的 itms 类型,它必须是 String
这就是您收到此错误的原因。
您应该像下面这样自定义 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);
您假设您的模型包含 Favorite
个对象。它不是。它包含字符串。
因此 填充 那个模型的代码的其他部分做错了。