当user clicks Column header的时候, 我们都知道JTable会自动排序这个column。 现在我想在我的程序内部启用自动排序排某个column该怎么做? 我不想改变TableModel 里的数据,我只想排Jtable的view part(也就是只改变GUI). 我花了很多时间了。 也去看了下JTableHeader 的源码。 就是找不到到底Java是怎么处理 mouse click on header column。 谢谢!
调试欢乐多
把 TableModel 里的数据备份一份,然后排序当前这份。
public void mouseClicked(MouseEvent e) {
TableColumnModel columnModel = tableView.getColumnModel();
int viewColumn = columnModel.getColumnIndexAtX(e.getX());
int column = tableView.convertColumnIndexToModel(viewColumn);
if (e.getClickCount() == 1 && column != -1) {
........
}
}
};
JTableHeader th = tableView.getTableHeader();
th.addMouseListener(listMouseListener); 以监听的方式去处理相应的事件。