为JTable创建多行标题 [英] Creating multi-line header for JTable

查看:137
本文介绍了为JTable创建多行标题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我将JTable GUI组件与NetBeans一起使用.

I use JTable GUI component with NetBeans.

  • 我想创建多行标题

  • I want to create multi-line headers

当我为表格标题创建自定义渲染器时,我能够做到这一点

I am able to this, when I create custom renderer for table headers

但我不想这么做,因为我喜欢默认值(我在程序中的其他地方都使用它).

BUT I don't want to, because I like default one (I use it everywhere else in program).

所以问题是:如何制作 标头为高?

So the problem is : How to make header heigher?

我的代码:

String headers[] = new String[3];
    headers[0] = "Header1";
    headers[1] = "Header2";
    headers[2] = "<html><center>Long<br>Centered</br></center></html>";
    DefaultTableModel dtm = new DefaultTableModel();
    dtm.setColumnIdentifiers(headers);
    dtm.setRowCount(5);
    jTable1.setModel(dtm);
    jTable1.getTableHeader().setPreferredSize(
                new Dimension(jTable1.getColumnModel().getTotalColumnWidth(),32));

推荐答案

尝试以下操作:

table.getTableHeader().setPreferredSize(
      new Dimension(table.getColumnModel().getTotalColumnWidth(), 32));

这将更改标题的大小:

要使文本居中,可以使用<center>-标记:

To center the text, you can use the <center>-tag:

headers[2] = "<html><center>Long Centered<br>Header";

编辑:

对齐方式由您的LookAndFeel设置.例如,WindowsTableHeaderUI显式调用

The alignment is set by your LookAndFeel. WindowsTableHeaderUI for example explicitly calls

setHorizontalAlignment(LEADING);

解决此问题的最简单方法是:

The easiest way to solve this is:

(JLabel)table.getTableHeader().getDefaultRenderer())
      .setHorizontalAlignment(SwingConstants.CENTER);

请注意,此后在您更改LookAndFeel时,此更改将丢失.

Note that this change is lost when you change your LookAndFeel afterwards.

这篇关于为JTable创建多行标题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆