我需要知道如何捕获从TableView和行的索引中删除行时发生的事件。此时从表视图中删除一行时,将调用TableView.getSelectionModel()。clearSelection()方法。但我想要的是选择表视图中可用的最后一个索引。
Tableview.getSelectionModel()。clearAndSelect()不是一个选项,因为有时会自动删除一行。
此致
答案 0 :(得分:2)
对于具有类型的表格,例如Person
:
import javafx.collections.ListChangeListener.Change ;
// ....
TableView<Person> table = ... ;
table.getItems().addListener((Change<? extends Person> c) -> {
while(c.next()) {
if (c.wasRemoved()) {
int numRemoved = c.getRemoved().size();
int index = c.getFrom();
System.out.println(numRemoved + " items removed from table at index "+index);
}
}
});
ListChangeListener.Change
documentation描述了c.getFrom()
,c.getTo()
,c.wasRemoved()
,c.getAdded()
等在各种情况下返回的值。