ludc
2024-09-14 36c2449aec5b51e5ed4e5c6841154b746060e09a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.vci.client.ui.table;
 
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
 
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
 
/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2009</p>
 * <p>Company: VCI</p>
 * @author eddie
 * @time 2009-4-21
 * @version 1.0
 */
public class TableRowHeaderRenderer extends JLabel implements TableCellRenderer{
 
    /**
     * 
     */
    private static final long serialVersionUID = 5009303816873848233L;
    JTable table = null;
    
    public TableRowHeaderRenderer(JTable table) {
        this.table = table;
    }
     
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
//        ((DefaultTableModel)table.getModel()).setRowCount(table.getRowCount());
        JTableHeader header = table.getTableHeader();
        this.setOpaque(true);
        /*设为TableHeader的边框类型*/
        setBorder(UIManager.getBorder("TableHeader.cellBorder"));
        setHorizontalAlignment(CENTER);
        /*设置背景色为TableHeader的背景色*/
        setBackground(header.getBackground());
        Font font = header.getFont();
        if ( isSelect(row) )    /* 当选取单元格时,在row header上设置成选取颜色 */
        {
            setForeground(Color.white);
            setBackground(Color.lightGray);
            setFont(font);
            setText(String.valueOf(row+1));
        }
        else
        {
            setForeground(header.getForeground());
            setFont(font);
            setText(String.valueOf(row+1));
        }
        return this;
 
    }
    
    private boolean isSelect(int row)
    {
        int[] sel = table.getSelectedRows();
        for ( int i=0; i<sel.length; i++ )
        {
            if (sel[i] == row ) return true;
        }
        return false;
    }
}