gpt4 book ai didi

java - 向 TableColumn 添加自定义排序算法

转载 作者:行者123 更新时间:2023-12-02 08:54:29 25 4
gpt4 key购买 nike

这是我的问题:

TableColumn 的默认排序设置自定义排序算法。

背景:作为示例列,我想使用将 IPv4 地址表示为 String 的列。因此默认排序是字典顺序(1.1.1.1、1.1.1.10、1.1.1.2)。但我想要进行数字排序(1.1.1.1、1.1.1.2、1.1.1.10)。

排序算法不是问题。我可以使用 Button 触发此排序,并且 TableView 中的显示是正确的。但我想做的是单击列标题,从而调用我的排序算法。

一般条件:表中的数据位于 ObservableList 中,它包装在 SortedList 中。

此时我的问题是:我怎样才能实现这一点?

最佳答案

您需要绑定(bind)比较器。当您单击列标题时,将使用该列的比较器,如果再次单击,将使用该比较器的相反顺序。如果您使用 SortedList,并且每列都有不同的比较器,请将列表的比较器属性绑定(bind)到表的比较器属性。这样,当您单击标题时,您的列表也会收到通知,并且您的数据也会更新:

columnA.setComparator(comparator1);
columnB.setComparator(comparator2);
columnC.setComparator(comparator3);

ObservableList<MyData> items = FXCollections.observableArrayList();
SortedList<MyData> sortedList = new SortedList<>(items);
sortedList.comparatorProperty().bind(tableView.comparatorProperty());

tableView.setItems(sortedList);

关于java - 向 TableColumn 添加自定义排序算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60568476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com