Вы можете создать пользовательский TableCellRenderer
, который расширяет JLabel
. Этот JLabel
можно создать с помощью значка (JLabel
может отображать значки справа или слева от текста). Вам нужно, чтобы getTableCellRendererComponent
проверял, является ли отображаемая строка первой или нет, и, если это так, установите значок, в противном случае - нет.
Для действия по удалению вы можете добавить MouseListener
к таблице, а при обработке метода mouseClicked
вы можете найти ячейку, по которой щелкнули, путем тестирования rowAtPoint
и columnAtPoint
, создав Point
из mouseEvent.getX()
и mouseEvent.getY()
. Если вы определили, что была нажата первая строка со значком, вы можете удалить столбец из модели столбца.
Если под 1-й строкой вы на самом деле имеете в виду заголовок таблицы, вы можете создать тот же рендер для JTableHeader
и установить MouseListener
для этого компонента.