JTable变成JScrollPane,不带Header



当我将JTable添加到JScrollPane中时,为什么会自动出现tableHeader ?我想添加表到一个没有标题的scrollPane。怎么办?请

简短的回答是,你不能(自动地)。

你能做的就是调用JScrollPane#setColumnHeaderView并在你将JTable设置为视口后将其传递给null

当调用表的addNotify方法时,JTable将列标头应用于JScrollPane。这是在响应一个容器时调用的,这个容器包含了表,被添加到一个可显示的容器中(比如一个可见的框架)。

然后调用configureEnclosingScrollPane

上面的代码假设JScrollPaneJTable已经添加到一个已经可以显示的容器中,但情况可能并不总是这样。或者,您可以重写JTable#configureEnclosingScrollPane方法,并在您希望它们为…时配置标题。

@Override
protected void configureEnclosingScrollPane() {
    if (showHeaders) {
        super.configureEnclosingScrollPane();
    }
}

现在就我个人而言,我会创建我自己的自定义JTable,它有一个showColumnHeaders属性,可以用来根据我的需要切换标题打开和关闭…

尝试下一个代码:

    JTable t = new JTable(3,3);
    JScrollPane jScrollPane = new JScrollPane(t);
    t.setTableHeader(null);
    jScrollPane.setColumnHeaderView(null);

或者只是将tableHeader设置为null对我有效t.setTableHeader(null);

相关内容

  • 没有找到相关文章

最新更新