The Java Program: SortMouseListener.java
1 import java.awt.event.MouseEvent;
2 import java.awt.event.MouseAdapter;
3
4 import javax.swing.JTable;
5 import javax.swing.table.JTableHeader;
6 import javax.swing.table.TableColumn;
7
8
9
10 public class SortMouseListener extends MouseAdapter {
11
12 private static boolean implementsComparable (final Class c) {
13 final Class[] interfaces = c.getInterfaces();
14 for (int i = 0; i<interfaces.length; i++) {
15 if (interfaces[i].equals(java.lang.Comparable.class)) {
16 return (true);
17 }
18 }
19 return (false);
20 }
21
22 public void mouseClicked (MouseEvent event) {
23 final JTableHeader header = (JTableHeader)(event.getSource());
24 final int column = header.columnAtPoint (event.getPoint());
25
26 int index = header.getColumnModel().getColumn(column).getModelIndex();
27 final JTable table = header.getTable();
28 final SortTableModel model = (SortTableModel) table.getModel();
29 final Class dataType = model.getColumnClass(index);
30
31 if (implementsComparable (dataType)) {
32 model.sortRows (index);
33 }
34
35 table.setColumnSelectionInterval (column, column);
36 }
37 }