package com.langtech.plm.mpart; import java.awt.Component; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JCheckBox; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; public class CheckHeaderCellRenderer implements TableCellRenderer { DefaultTableModel tableModel; JTableHeader tableHeader; final JCheckBox selectBox; public CheckHeaderCellRenderer(final JTable table) { this.tableModel = (DefaultTableModel) 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) { System.out.println("selectColumn == 0selectColumn == 0selectColumn == 0"); boolean value = !selectBox.isSelected(); selectBox.setSelected(value); // tableModel.selectAllOrNull(value); tableHeader.repaint(); if(value) { for(int i=0;i