Могу ли я добавить кнопку в заголовок столбца JTable?

У меня есть JTable, где первый столбец в каждой строке является флажком. Пользователь может выбирать и отменять выбор отдельных столбцов. У меня это работает.

Теперь я хотел бы добавить в заголовок столбца флажок, который можно использовать для «выбрать все» и «отменить выбор всех». Я озадачен тем, как мне это сделать. Я не могу понять, как поместить компонент по своему выбору в заголовок определенного столбца.

Что ты можешь предложить?


person Steve McLeod    schedule 08.01.2010    source источник


Ответы (3)


Вот пример, когда кто-то хотел сделать то же самое.

person Mark    schedule 08.01.2010

Конечно вы можете!

Получите заголовок таблицы с помощью header = table.getTableHeader(). Это возвращает компонент. Вы можете добавить другие компоненты, такие как кнопки и т. д., поверх этого с помощью header.add(btn).

[Изменить] Перед добавлением кнопки вам необходимо установить макет следующим образом:

header.setLayout(new BorderLayout()); //if u need someother layout you can set

Это связано с тем, что по умолчанию макет заголовка имеет значение null.

person Suraj Chandran    schedule 08.01.2010
comment
Это не так просто, потому что, когда этот компонент будет окрашен, он больше не будет активным компонентом (т. е. вы не сможете щелкнуть его). Вы должны создать код, чтобы зафиксировать точку щелчка и передать его слушателям действия флажка. См. сообщение (и пример по ссылке) Марка - person Timothy; 08.01.2010
comment
@timmyd ... нет необходимости в таком сложном коде, он не нужен. Я пробовал с моим кодом в моем ответе выше с Jcheckbox, он отлично работает. Пожалуйста, проверьте и удалите отрицательный голос. - person Suraj Chandran; 08.01.2010

введите здесь описание изображения

См. здесь https://stackoverflow.com/a/29963916/1201614 пример того, как добавить элементы управления в таблицу. заголовок

person luca    schedule 29.04.2015