如何在JTable而不是列标题上显示行标题

时间:2014-10-08 01:57:09

标签: java swing jtable jtableheader

如何向我展示我的Jtable ..

enter image description here

目前我只知道创建这种jtable

enter image description here

下面是我的代码

HERE

           Object rowData1[][] =
                            {
                            { "","","","" },
                            { "","","","" },
                            { "","","","" },
                            { "","","","" }
                            };


            Object columnNames1[] = { "HEADER 1", "HEADER 2", "HEADER 3", "HEADER 4" };

            JTable table1 = new JTable(rowData1, columnNames1);

            table1.getColumnModel().getColumn(0).setPreferredWidth(120);

            JScrollPane scrollPane1 = new JScrollPane(table1);

1 个答案:

答案 0 :(得分:5)

这只是概念验证

免责声明:在我收到一堆讨厌的邮件之前,我已经做了很多可怕的事情来完成这项工作,我直接偷走了大部分的绘画代码,这个它是如何在外观和代码本身内完成的:P

我也去了第n度,这意味着我确实假设您希望行标题看起来像列标题。如果这不是一项要求,那将会更容易......


好的,这是概念的基本证明,它提供了生成行标题的方法,并以与通常相同的方式呈现它们,就像行标题一样。

需要添加/支持的事情:

  • 检测表模型何时更改(即,将新表模型设置为表)
  • 检测列模型何时更改(即,将新列模型设置为表)

大部分功能可能需要添加到TableWithRowHeader实施...

基本上,这个“尝试”做的是创建一个基于JTableHeader的自定义行标题,删除现有列标题并将其自身添加到封闭{{1}的行标题视图位置}。

TableRowHeader

JScrollPane

免责声明:这可能会在你脸上爆炸。我没有做任何检查,以防止标题响应像列行分拣的更改和......理论上...它不应该尝试“调整”列,但我没有测试... < / p>