826220679@qq.com
2025-08-07 4d6cd980c5c69e4d9d150669c89734642297e0cd
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
package publicsWay; // °üÉùÃ÷
import javax.swing.*; // µ¼ÈëSwing×é¼þ
import javax.swing.table.DefaultTableCellRenderer; // µ¼Èë±í¸ñµ¥Ôª¸ñäÖȾÆ÷
import javax.swing.table.DefaultTableModel; // µ¼ÈëĬÈϱí¸ñÄ£ÐÍ
import java.awt.*; // µ¼ÈëAWTͼÐÎ×é¼þ
 
public class TableUtils { // ±í¸ñ¹¤¾ßÀà
    
    // ´´½¨Í¨Óñí¸ñµÄ·½·¨
    @SuppressWarnings("serial")
    public static JTable createCommonTable(String[] columnNames) { // ¾²Ì¬·½·¨¿ÉÖ±½Óµ÷ÓÃ
        // ´´½¨±í¸ñÄ£ÐÍ - ÄäÃûÄÚ²¿ÀàÀ©Õ¹DefaultTableModel
        DefaultTableModel model = new DefaultTableModel(columnNames, 0) { // ³õʼ»¯±í¸ñÄ£ÐÍ
            @Override
            public boolean isCellEditable(int row, int column) { // ÖØÐ´µ¥Ôª¸ñ¿É±à¼­ÐÔ
                return false; // ËùÓе¥Ôª¸ñ²»¿É±à¼­
            }
        };
        
        // ´´½¨±í¸ñʵÀý
        JTable table = new JTable(model); // Ê¹ÓÃ×Ô¶¨ÒåÄ£ÐÍ´´½¨±í¸ñ
        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // ÉèÖõ¥Ñ¡Ä£Ê½
        
        // ´´½¨±íÍ·äÖȾÆ÷
        DefaultTableCellRenderer headerRenderer = createHeaderRenderer(); // µ÷ÓÃäÖȾÆ÷´´½¨·½·¨
        
        // Ó¦ÓñíÍ·äÖȾÆ÷µ½ËùÓÐÁÐ
        for (int i = 0; i < table.getColumnCount(); i++) { // ±éÀúËùÓÐÁÐ
            table.getColumnModel().getColumn(i).setHeaderRenderer(headerRenderer); // ÉèÖÃÁÐÍ·äÖȾÆ÷
        }
        
        return table; // ·µ»ØÅäÖúõıí¸ñʵÀý
    }
    
    // ´´½¨±íÍ·äÖȾÆ÷
    @SuppressWarnings("serial")
    private static DefaultTableCellRenderer createHeaderRenderer() { // Ë½Óй¤¾ß·½·¨
        return new DefaultTableCellRenderer() { // ·µ»ØÄäÃûÄÚ²¿ÀàʵÀý
            { // ÊµÀý³õʼ»¯¿é
                setHorizontalAlignment(SwingConstants.LEFT); // ÉèÖñíÍ·Îı¾×ó¶ÔÆë
                setBackground(Color.GRAY); // ÉèÖñíÍ·±³¾°Îª»ÒÉ«
                setForeground(Color.WHITE); // ÉèÖñíÍ·ÎÄ×ÖΪ°×É«
                setFont(getFont().deriveFont(Font.BOLD)); // ÉèÖñíÍ·×ÖÌå¼Ó´Ö
            }
        };
    }
}