From 1bda9524add969e315d870f284046ecf1097f956 Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期日, 24 八月 2025 18:01:25 +0800
Subject: [PATCH] 修改

---
 src/publicsWay/TableUtils.java |  123 +++++++++++++++++++++++++++++++----------
 1 files changed, 93 insertions(+), 30 deletions(-)

diff --git a/src/publicsWay/TableUtils.java b/src/publicsWay/TableUtils.java
index 248c617..6545e35 100644
--- a/src/publicsWay/TableUtils.java
+++ b/src/publicsWay/TableUtils.java
@@ -1,47 +1,110 @@
-package publicsWay; // 包声明
-import javax.swing.*; // 导入Swing组件
-import javax.swing.table.DefaultTableCellRenderer; // 导入表格单元格渲染器
-import javax.swing.table.DefaultTableModel; // 导入默认表格模型
-import java.awt.*; // 导入AWT图形组件
+package publicsWay;
 
-public class TableUtils { // 表格工具类
+import javax.swing.*;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.JTableHeader;
+import java.awt.*;
+
+public class TableUtils {
     
-    // 创建通用表格的方法
+    // Create a styled table with specified column names
     @SuppressWarnings("serial")
-	public static JTable createCommonTable(String[] columnNames) { // 静态方法可直接调用
-        // 创建表格模型 - 匿名内部类扩展DefaultTableModel
-        DefaultTableModel model = new DefaultTableModel(columnNames, 0) { // 初始化表格模型
+    public static JTable createCommonTable(String[] columnNames) {
+        // Create table model
+        DefaultTableModel model = new DefaultTableModel(columnNames, 0) {
             @Override
-            public boolean isCellEditable(int row, int column) { // 重写单元格可编辑性
-                return false; // 所有单元格不可编辑
+            public boolean isCellEditable(int row, int column) {
+                return false;
             }
         };
         
-        // 创建表格实例
-        JTable table = new JTable(model); // 使用自定义模型创建表格
-        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 设置单选模式
+        // Create table instance
+        JTable table = new JTable(model);
+        table.setAutoCreateRowSorter(true);
+        table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
         
-        // 创建表头渲染器
-        DefaultTableCellRenderer headerRenderer = createHeaderRenderer(); // 调用渲染器创建方法
+        // Apply table styling
+        setupTableStyle(table);
         
-        // 应用表头渲染器到所有列
-        for (int i = 0; i < table.getColumnCount(); i++) { // 遍历所有列
-            table.getColumnModel().getColumn(i).setHeaderRenderer(headerRenderer); // 设置列头渲染器
-        }
+        // Apply header styling
+        setupTableHeaderStyle(table);
         
-        return table; // 返回配置好的表格实例
+        return table;
     }
     
-    // 创建表头渲染器
+    // Setup basic table styling
+    public static void setupTableStyle(JTable table) {
+        table.setShowVerticalLines(false);
+        table.setShowHorizontalLines(true);
+        table.setGridColor(new Color(220, 220, 220));
+        table.setIntercellSpacing(new Dimension(0, 1));
+        table.setRowHeight(25);
+    }
+    
+    // Setup table header styling
+    public static void setupTableHeaderStyle(JTable table) {
+        JTableHeader header = table.getTableHeader();
+        header.setBackground(new Color(70, 130, 180));
+        header.setForeground(Color.WHITE);
+        header.setFont(header.getFont().deriveFont(Font.BOLD));
+        header.setPreferredSize(new Dimension(header.getWidth(), 30));
+        
+        // Create and apply header renderer
+        DefaultTableCellRenderer headerRenderer = createHeaderRenderer();
+        for (int i = 0; i < table.getColumnCount(); i++) {
+            table.getColumnModel().getColumn(i).setHeaderRenderer(headerRenderer);
+        }
+    }
+    
+    // Create header renderer
     @SuppressWarnings("serial")
-	private static DefaultTableCellRenderer createHeaderRenderer() { // 私有工具方法
-        return new DefaultTableCellRenderer() { // 返回匿名内部类实例
-            { // 实例初始化块
-                setHorizontalAlignment(SwingConstants.LEFT); // 设置表头文本左对齐
-                setBackground(Color.GRAY); // 设置表头背景为灰色
-                setForeground(Color.WHITE); // 设置表头文字为白色
-                setFont(getFont().deriveFont(Font.BOLD)); // 设置表头字体加粗
+    private static DefaultTableCellRenderer createHeaderRenderer() {
+        return new DefaultTableCellRenderer() {
+            {
+                setHorizontalAlignment(SwingConstants.CENTER);
+                setBackground(new Color(70, 130, 180));
+                setForeground(Color.WHITE);
+                setFont(getFont().deriveFont(Font.BOLD));
+                setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
             }
         };
     }
+    
+    // Create cell renderer with zebra striping
+    @SuppressWarnings("serial")
+    public static DefaultTableCellRenderer createCellRenderer(int alignment) {
+        return new DefaultTableCellRenderer() {
+            @Override
+            public Component getTableCellRendererComponent(JTable table, Object value,
+                    boolean isSelected, boolean hasFocus,
+                    int row, int column) {
+                Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
+
+                // Set alternating row colors
+                if (!isSelected) {
+                    if (row % 2 == 0) {
+                        c.setBackground(new Color(240, 240, 200));
+                    } else {
+                        c.setBackground(Color.WHITE);
+                    }
+                } else {
+                    c.setBackground(new Color(200, 220, 240));
+                }
+
+                // Set cell alignment
+                setHorizontalAlignment(alignment);
+
+                // Set cell padding
+                setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 5));
+
+                return c;
+            }
+        };
+    }
+    
+    // Create centered cell renderer with zebra striping (most common case)
+    public static DefaultTableCellRenderer createCenteredCellRenderer() {
+        return createCellRenderer(SwingConstants.CENTER);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3