package com.ycl.api.YS.util; import javax.swing.*; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class CheckHeaderCellRenderer implements TableCellRenderer { CheckTableModle tableModel; JTableHeader tableHeader; 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); tableModel.selectAllOrNull(value); tableHeader.repaint(); } } } }); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { // TODO Auto-generated method stub String valueStr = (String) value; JLabel label = new JLabel(valueStr); label.setHorizontalAlignment(SwingConstants.CENTER); // 表头标签剧中 //selectBox.setHorizontalAlignment(SwingConstants.CENTER);// 表头标签剧中 //selectBox.setBorderPainted(true); JComponent component = label; component.setForeground(tableHeader.getForeground()); component.setBackground(tableHeader.getBackground()); component.setFont(tableHeader.getFont()); component.setBorder(UIManager.getBorder("TableHeader.cellBorder")); return component; } }