我想创建具有排序和过滤功能的用户视图(表)。我使用 EventList ( Glazed Lists ) 作为 EventTableModel 的源。GlazedLists中还有Sorted List和一些过滤项,所以我可以用它们来创建视图。但是我找到了 JXTable,它有排序和过滤的方法,这就是我希望它工作的方式:排序和过滤必须提供 UI 组件,而模型只能保存数据:
EventList<Item> source=new BasicEventList<Item>();
TableModel model=new DefaultEventTableModel<Item>(source,tableFormat); // It'll be
//perfect if I could create model without tableFormat,
//because it's presentation of data,
//but in GlazedLists I can't :( ...
JTalbe ui=new JXTable(model); // UI with sorting and filtering
但是 GlazedLists 也提供了 SortedList(EventList 的装饰器,带有排序),以及一些过滤方法。
EventList<Item> source=new BasicEventList<Item>();
SortedList<Item> sortedSource=new SortedList<Item>(source,comparator);
TableModel model=new DefaultEventTableModel<Item>(sortedSource,tableFormat);
// model with sorting... not very beautifull for me, but what do you think?
JTable ui=new JTable(model); // UI with sorting provided by model
问题是:哪种模型更好。或者两者都错了,创建视图有什么用?