如何在JTable Swing中增加标题列的Font?

时间:2011-09-16 09:21:26

标签: java swing fonts jtable jtableheader

我想知道如何增加JTable Swing中标题列的字体大小?

我正在使用Netbeans。

最好的问候。

丹尼尔

3 个答案:

答案 0 :(得分:6)

您只需要调用getTableHeader()方法即可。然后在类JTableHeader的对象上使用setFont(/*font*/)方法设置新字体。

table.getTableHeader().setFont( new Font( "Arial" , Font.BOLD, 15 ));

答案 1 :(得分:6)

要保留相同的字体系列,只需更改可以使用的尺寸:

JTableHeader header = table.getTableHeader();
header.setFont( header.getFont().deriveFont(16) );

答案 2 :(得分:1)

不确定你的问题,然后我发布了两个选项

1)为JTable设置Font myTable.setFont(new Font("Arial", Font.PLAIN, 10))

2)为TableHeader设置Font

    final TableCellRenderer tcrOs = table.getTableHeader().getDefaultRenderer();
    table.getTableHeader().setDefaultRenderer(new TableCellRenderer() {

        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
            JLabel lbl = (JLabel) tcrOs.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            lbl.setBorder(BorderFactory.createCompoundBorder(lbl.getBorder(), BorderFactory.createEmptyBorder(0, 5, 0, 0)));
            lbl.setHorizontalAlignment(SwingConstants.LEFT);
            if (isSelected) {
                lbl.setForeground(Color.red);
                lbl.setFont(new Font("Arial", Font.BOLD, 12));
            } else {
                lbl.setForeground(Color.darkGray);
                lbl.setFont(new Font("Arial", Font.PLAIN, 10));
            }
            return lbl;
        }
    });