Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取从jList中选择的对象_Java_Database_Netbeans_Bind_Jlist - Fatal编程技术网

Java 如何获取从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

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

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

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);