swing表格的列排序

使用JTable实现的表格并没有实现根据指定列排序的功能,但开发者可以利用AbstractTableModel类来实现该功能。由于TableModel不强制要求保存表格里的数据,只要TableModel实现了getValueAt()、getColumnCount()和 getRowCount()三个方法,JTable就可以根据该TableModel生成表格。因此可以创建个SortableTableModel实现类,它可以将原TableModel包装起来,并实现根据指定列排序的功能

程序创建的SortableTableModel实现类会对原TableModel进行包装,但它实际上并不保存任何数据,它会把所有的方法实现委托给原TableModel完成。SortableTableModel仅保存原TableModel里每行的行索引,当程序对SortableTableModel的指定列排序时,实际上仅仅对SortableTableModel里的行索引进排序一一这样造成的结果是: SortableTableModel里的数据行的行索引与原TableModel里数据行的行索引不一致,所以对于TableModel的那些涉及行索引的方法都需要进行相应的转换。下面程序实现了SortableTableModel类,并使用该类来实现对表格根据指定列排序的功能

 

swing表格的列排序_练习