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

问题描述 投票:1回答:2

我建立在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中不能在my.mymoviesamn.FavoriteTestForm被转换为在model.FavoriteList my.mymoviesamn.FavoriteTestForm.jButton1ActionPerformed(FavoriteTestForm.java:104)。访问$ 000(FavoriteTestForm.java:15)在my.mymoviesamn.FavoriteTestForm $ 1.actionPerformed(FavoriteTestForm.java:51)在javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)

问题是什么?当我选择从一个的jList项目我想获得该对象(喜欢的),并删除它。问题是我无法的jList获取该对象。

java database netbeans bind jlist
2个回答
1
投票
Favorite item = (Favorite)lModel.getElementAt(selectedIndex);

你认为你的模型包含Favorite对象。它不是。它包含字符串。

填补该模型的代码,这样其他部分正在做的事情是错误的。


0
投票

您需要创建单独的空List并插入其删除之前选择在它的对象。

作为ClassCastException来,你需要检查什么是ITMS的ListModel下它必须是一个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;
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.