[英]How to delete row from table column javafx
這些是我的表列Course和Description 。 如果單擊一行(該行變為“活動”/突出顯示),然后他們按下刪除按鈕,它應該刪除該行,我該怎么做?
我的課程列的代碼:(以及我添加到刪除按鈕的事件監聽器是什么?)
@SuppressWarnings("rawtypes")
TableColumn courseCol = new TableColumn("Course");
courseCol.setMinWidth(300);
courseCol.setCellValueFactory(new PropertyValueFactory<Courses, String>("firstName"));
final Button deleteButton = new Button("Delete");
deleteButton.setOnAction(.....
只需從表視圖的項目列表中刪除所選項目。 如果你有
TableView<MyDataType> table = new TableView<>();
那你做
deleteButton.setOnAction(e -> {
MyDataType selectedItem = table.getSelectionModel().getSelectedItem();
table.getItems().remove(selectedItem);
});
如果有人想一次刪除多行,可以接受類似的解決方案:
首先,我們需要更改表中的 SelectionMethod 以允許多項選擇:
table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
在此之后,我們需要用這樣的代碼為按鈕設置動作:
ObservableList<SomeField> selectedRows = table.getSelectionModel().getSelectedItems();
// we don't want to iterate on same collection on with we remove items
ArrayList<SomeField> rows = new ArrayList<>(selectedRows);
rows.forEach(row -> table.getItems().remove(row));
我們可以調用 removeAll 方法而不是 remove(也不創建新集合),但這種解決方案不僅會刪除選定的項目,還會刪除它們的重復項(如果它們存在且未被選中)。 如果您不允許表中出現重復項,您只需使用 selectedRows 作為參數調用 removeAll。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.