我有一个装有书籍的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);
}
正如您所看到的,我很不确定在单击按钮后如何从列表中删除该项目。
答案 0 :(得分:4)
DefaultListModel中的“remove”方法与index一起使用,因此首先需要获取要删除的元素的索引,并将其提供给remove方法。您可以使用列表中的方法:单选模式的getSelectedIndex方法(如果没有选择则获得-1),或者选择多选的getSelectedIndices。
如果在此之后您的列表保持不变,则需要在更改模型后刷新GUI。虽然我几乎可以肯定你不需要这样做,但是为了将来要记住这个原则。