1

我有一个包含书籍的 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); 
}  

如您所见,一旦单击按钮,我很不确定如何从列表中删除该项目。

4

1 回答 1

4

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

如果在任何情况下您的列表在此之后保持不变,则需要在模型更改后刷新 GUI。尽管我几乎可以肯定您不需要这样做,但请牢记这一原则以备不时之需。

于 2013-10-08T20:45:17.433 回答