我正在尝试制作一个按钮,当 TableView 中有多行时被选中时,所有选中的行都将被删除。
我正在使用 getSelectedIndicies
创建一个可观察列表,但它无法正常工作。
如果我选择前三行,我会在删除它们时打印出标记并打印 0,1,然后删除第一行和第三行,但不会删除三行的中间部分。
delBtn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
ObservableList<Integer> index =
table.getSelectionModel().getSelectedIndices();
for (int location: index) {
System.out.println(location);
data.remove(location);
}
table.getSelectionModel().clearSelection();
}
});
最佳答案
出于某种原因,这有效:
b.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent arg0) {
List items = new ArrayList (treeTable.getSelectionModel().getSelectedItems());
data.removeAll(items);
table.getSelectionModel().clearSelection();
}
});
我怀疑 selectedItems 列表 ( com.sun.javafx.collections.ObservableListWrapper ) 的内部实现可能有一些错误。
编辑 是的,这绝对是一个错误:https://javafx-jira.kenai.com/browse/RT-24367
关于java - 从 JavaFX TableView 中一次删除多行的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18700430/