簡體   English   中英

如何從表列javafx中刪除行

[英]How to delete row from table column javafx

在此處輸入圖像描述

這些是我的表列CourseDescription 如果單擊一行(該行變為“活動”/突出顯示),然后他們按下刪除按鈕,它應該刪除該行,我該怎么做?

我的課程列的代碼:(以及我添加到刪除按鈕的事件監聽器是什么?)

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM