首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SortableTable的自定义排序

问SortableTable的自定义排序
EN

Stack Overflow用户
提问于 2012-02-22 05:29:07
回答 2查看 1.8K关注 0票数 1

我修复了使用jide SortableTable的项目。如果表中只包含英文数据,那么排序就可以了。如果数据是混合的西欧语言,排序将失败。

如果我使用强度为“二级”的Collator对数据集合进行排序,它可以很好地工作。

问题是:如何让SortableTable使用二级排序器强度或自定义比较器对数据进行排序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-24 03:11:56

JIDE的SortableTableModel使用ObjectComparatorManager来获取比较器。您可以注册您的排序器(默认情况下,我们使用主排序器)

排序器排序器= Collator.getInstance();collator.setStrength(Collator.SECONDARY);

ObjectComparatorManager.registerComparator(String.class,排序器,新的ComparatorContext( "CollatorSecondary“);//”CollatorSecondary“可以是应用程序中唯一的任何字符串

然后在SortableTableModel子类中,通过覆盖列的ComparatorContext(int列)返回新的列(“CollatorSecondary”)。

另一种快速方法是覆盖SortableTableModel的getComparator(int列),如果您只想在一个表中执行此操作。

最后但并非最不重要的一点是,您可能还需要调用SortableTableModel的setAlwaysUseComparators(true),因为出于性能考虑,我们使用了单元格值的compareTo方法(如果可用),而不使用比较器。

票数 2
EN

Stack Overflow用户

发布于 2012-02-22 05:36:50

那么继承和多态性呢?您可以从SortableTable派生新类的子类并添加自定义行为。并在需要SortableTable的地方使用它的实例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9385451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档