如何获取从jList中选择的对象

时间:2019-02-05 07:14:16

标签: java database netbeans bind jlist

我在Netbeans建立了一个Java项目。 我有一个表单,在表单中有一个jList,其中填充了一个对象(收藏夹)。 我也有一个按钮,我想按一下按钮删除jList中的选定项目。

我正在尝试以下代码,但出现错误。

1-> Check that your CA server is getting started with correct pem file.

2-> Correct _sk (private key)

我收到以下错误:

  

线程“ AWT-EventQueue-0”中的异常java.lang.ClassCastException:无法将java.lang.String强制转换为model.FavoriteList       在my.mymoviesamn.FavoriteTestForm.jButton1ActionPerformed(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中获取该对象。

2 个答案:

答案 0 :(得分:1)

Favorite item = (Favorite)lModel.getElementAt(selectedIndex);

您假定模型包含Favorite个对象。它。它包含字符串。

因此,代码中填充该模型的其他部分做错了事。

答案 1 :(得分:0)

您需要创建单独的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;
  }
}