В одном из проектов понадобилось переключать внутрению логику обработки редактирования данных в JTable в зависимости от клика на колонки.
В результате получилось следующее :
JTable grid.getTableHeader().addMouseListener(new HeaderClick());
вешаем слушателя на заголовок таблицы.
класс
HeaderClick выглядит следующим образом:
class HeaderClick implements MouseListener {
@Override
public void mouseClicked(MouseEvent me) {
if (me.getSource() instanceof JTableHeader){
TableColumnModel cl=((JTableHeader) me.getSource()).getColumnModel();
if (cl.getColumn(cl.getColumnIndexAtX(me.getX())).getHeaderValue().toString().equals("Брутто")){
Glu.setCFG("CardSpecDirection", "brutto");
cl.getColumn(cl.getColumnIndexAtX(me.getX())).setHeaderRenderer(null);
}
}
}
номер колонки по заголовку которой мы кликнули получаем с помошью -
cl.getColumnIndexAtX(me.getX()) т.е. me.getX() - это положение мыши и по положению мыши мы получаем номер колонки в заголовке.