gpt4 book ai didi

java - 如何从 TableView 中删除大量选定的行?

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:07 24 4
gpt4 key购买 nike

获取 TableView,假设有 10.000 行。选择了几乎所有这些,并想通过单击按钮将其删除。如何在没有 javafx GUI 延迟的情况下管理它?

现在我得到了:

ObservableList aLLinTable = tableView.getItems()
selected = tableView.getSelectionModel().getSelectedItems()

aLLinTable .removeAll(selected)

认为问题出在 TableView - ObservableList 集合中的项目类型。它的变化会导致射击 Action 。我还从集合中删除了大量对象,因此存在搜索/删除循环。也许我应该使用

ObservableList<Integer> selectedIndices = tableView.getSelectionModel().getSelectedIndices()

然后通过索引从 aLLinTable 集合中删除:

for(Integer idx : selectedIndices) {
aLLinTable.remove(idx.intValue())
}

尚未测试它,但它仍然可以在 ObservableList 集合 aLLinTable 上工作。

那么也许可以将 aLLinTable 集合复制/传输到 .. ArrayList,对其进行 for 循环,然后在 TableView 上重新创建 ObservableList 和 .setItems() ?

最佳答案

答案是使用 HashMap,从其中删除具有适当键的对象,然后将映射转换为 ObservableList 并将其设置为 TableView.setItems()。

它运行得非常快。使用 5000-10000 行进行测试。

关于java - 如何从 TableView 中删除大量选定的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37320323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com