java - 从 TableView 中删除行时的事件处理程序

标签 java javafx-8

我需要知道如何捕获从 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/

相关文章:

java - Primefaces,如何用另一个按钮折叠布局单元?

java - 如何使用一个 Controller 来实现两种形式?

java - 如何在 javafx 中获取字体系列和字体样式?

java - 在 Stripe 中动态设置语句描述符

java - 尝试从数组总和中获取结果

java - 如何使用带有标签的形状位置

JavaFX 8,带有复选框滚动 Pane 的 ListView 问题

java - 在 JavaFX 中使用不同纹理创建立方体

java - 如何使用 Postman 将 map<Integer, String> 作为@RequestParam 插入

java - 如何在 Java 1.7 中编写等效的 lambda 表达式?