如何从jlist中删除项目

时间:2013-10-08 20:20:07

标签: java swing

我有一个装有书籍的Jlist,但是,我想要做的是,一旦选择了一本书,我按下一个名为return book的按钮,该按钮应该从列表中删除该书。

我有一个成员类,其退货方法如下

public void returnBook(Book aBook)
{
    currentLoans.remove(aBook);
    aBook.setBorrower(null);
}

在我的主应用程序中,我在返回书按钮下面有以下代码

private void theButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
  //!!!Return book
  DefaultListModel model = (DefaultListModel) BooksOnLoan.getModel(); 
  Book selectedBook;
  selectedBook = (Book)BooksOnLoan.getModel();
  model.remove(selectedBook); 
}  

正如您所看到的,我很不确定在单击按钮后如何从列表中删除该项目。

1 个答案:

答案 0 :(得分:4)

DefaultListModel中的“remove”方法与index一起使用,因此首先需要获取要删除的元素的索引,并将其提供给remove方法。您可以使用列表中的方法:单选模式的getSelectedIndex方法(如果没有选择则获得-1),或者选择多选的getSelectedIndices。

如果在此之后您的列表保持不变,则需要在更改模型后刷新GUI。虽然我几乎可以肯定你不需要这样做,但是为了将来要记住这个原则。