tableview - Javafx : Re-sorting a column in a TableView

标签 tableview javafx-2

我有一个与 TreeView 关联的 TableView。每次选择 TreeView 中的一个节点时,都会用不同的数据刷新 TableView。

我可以对 TableView 中的任何列进行排序,只需按相应的列标题即可。这很好用。

但是 :当我在树 View 中选择不同的节点时,即使列标题一直显示为已排序。数据不是。

有没有办法在每次数据更改时以编程方式强制执行用户所做的排序顺序?

最佳答案

好的,我找到了方法。我会在这里总结一下,以防对其他人有用:

之前 您更新 TableView 的内容,您必须保存 sortcolum(如果有)和 sortType:

        TableView rooms;
        ...
        TableColumn sortcolumn = null;
        SortType st = null;
        if (rooms.getSortOrder().size()>0) {
            sortcolumn = (TableColumn) rooms.getSortOrder().get(0);
            st = sortcolumn.getSortType();
        }

然后,完成更新后 TableView 中的数据,您必须恢复丢失的排序列状态并执行排序。
       if (sortcolumn!=null) {
            rooms.getSortOrder().add(sortcolumn);
            sortcolumn.setSortType(st);
            sortcolumn.setSortable(true); // This performs a sort
        }

我没有考虑在排序中有多个列的可能性,但是使用这些信息很简单。

关于tableview - Javafx : Re-sorting a column in a TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096353/

相关文章:

ios - TableView仅在单击时显示内容

ios - 如何在 uitextfield 下使用 uitableview 内部错误并验证

JavaFX、TableView 和 JPA

slider - 在Javafx Slider上实现CSS

tableview - 在 SC.TableView 中设置默认值

c++ - 在 View 中用 ID 替换字符串的简单方法

javafx-2 - Javafx,获取一个TableCell引用的对象

jtable - JavaFX TableView 相当于 JTable.getSelectedRow() 的方法是什么

JavaFX布局: all in Grid vs Separator for each cell

java - 如何从 JAVAFx 2.0 中的 Tableview 的行中获取数据