Это не имеет никакого отношения к вашему коду, оно прекрасно работает.Ваша проблема в том, что JTable не имеет этой функциональности по умолчанию.Вам потребуется реализовать JTableHeader mouse listener, который определяет, когда пользователь нажимает на заголовок таблицы.
Пример:
JTableHeader header = table.getTableHeader();
header.setReorderingAllowed(false);
header.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int col = header.columnAtPoint(e.getPoint());
StringSelection selection = new StringSelection(table.getColumnName(col));
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);
}
});
Обратите внимание, что это не позволит пользователю выбирать илископируйте имя столбца, поскольку Swing не позволяет этого (имя столбца не отображается так, как это разрешено).
В моем примере я заставил код автоматически скопировать имя столбца в буфер обмена.Это не идеальное решение, но оно будет работать.