0
我有一个JTable
,其中包含6列不同的值。 其中一列被称为“Priority
”,包含不同的字符串:按特定顺序排序包含字符串的JTable列
("Critical", "High", "Medium", "Low", "Not a priority").
默认的排序是按字母顺序排列,而不是在为这个情况下,我想的优先级列表从低到高或者相反。
我一直在看比较器和枚举,但还没有想出如何使它工作。
也是采用这种模式:
public class TableModel extends DefaultTableModel{
final Class<?>[] columnClasses = new Class<?>[] {Integer.class, String.class, Date.class, String.class, String.class, String.class};
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnClasses[columnIndex];
}
}
这已经让我自动升序和降序的日期和整数排序。
首先查看[Concepts:Editors and Renderers](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender)和[Using Custom Renderers](http: //docs.oracle.com/javase/tutorial/uiswing/components/table.html#renderer),这样你可以在模型中有一个值,并且对于视图有不同的渲染器 – MadProgrammer
我也可以看看[如何更密切地使用表格,排序和过滤](http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting),例如,您可以使用一个'enum'一个值,您可以通过这种方式对列进行排序并使用自定义排序器进行排序 – MadProgrammer