首页 > 解决方案 > 更改 jTableHeader 的字体和背景颜色

问题描述

我正在尝试更改 jTableHeader 的背景颜色和字体大小,但它只会更改背景颜色。继承人的代码:

DefaultTableCellRenderer centerRenderer = new DefaultTableCellRenderer();
    centerRenderer.setBackground(new Color(239,198,46));
    centerRenderer.setHorizontalAlignment(JLabel.CENTER);
    centerRenderer.setFont(new Font("Times New Roman", Font.BOLD, 12));
    jTable1.getTableHeader().setDefaultRenderer(centerRenderer);

我不明白为什么它只会改变背景。希望你能帮忙。

标签: javaswing

解决方案


table.getTableHeader().setBackground()您可以使用and直接实现此目的,table.getTableHeader().setFont()而不是尝试更改标题渲染器。试试这个例子:

import javax.swing.*;
import java.awt.*;

public class TableHeaderFont
{
  public static void main(String[] args)
  {
    JTable table = new JTable(new String[][] {{"11", "22"}, {"33", "44"}}, new String[] {"ABC", "DEF"});
    table.getTableHeader().setBackground(new Color(239,198,46));
    table.getTableHeader().setFont(new Font("Times New Roman", Font.BOLD, 12));

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(new JScrollPane(table));
    frame.pack();
    frame.setVisible(true);
  }
}

输出:

在此处输入图像描述


推荐阅读