废话不多说,先上一张效果图

具体源码:
CheckHeaderCellRenderer类
public class CheckHeaderCellRenderer implements TableCellRenderer {
CheckTableModle tableModel;
JTableHeader tableHeader;
final JCheckBox selectBox;
public CheckHeaderCellRenderer(JTable table) {
this.tableModel = (CheckTableModle)table.getModel();
this.tableHeader = table.getTableHeader();
selectBox = new JCheckBox(tableModel.getColumnName(0));
selectBox.setSelected(false);
tableHeader.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() > 0) {
//获得选中列
int selectColumn = tableHeader.columnAtPoint(e.getPoint());
if (selectColumn == 0) {
boolean value = !selectBox.isSelected();
selectBox.setSelected(value);

该博客介绍了如何在JTable的表头中添加JCheckBox,实现全选和反向选择的功能。通过CheckHeaderCellRenderer类和CheckTableModle类的定制,当点击表头时,可以切换所有行的选中状态。示例代码展示了具体实现细节。
最低0.47元/天 解锁文章
4889

被折叠的 条评论
为什么被折叠?



