我需要知道如何捕获从 TableView 中删除一行时发生的事件以及该行的索引。此时,当从 TableView 中删除一行时,将调用 TableView.getSelectionModel().clearSelection() 方法。但我想要的是选择 TableView 中最后一个可用的索引。
Tableview.getSelectionModel().clearAndSelect() 不是一个选项,因为有时会自动删除一行。
问候
最佳答案
对于具有类型的表,例如,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 返回的值()
等各种场景下的情况。
关于java - 从 TableView 中删除行时的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36726402/