为什么在JTable
添加JScrollPane
时会自动出现tableHeader。我想将表添加到没有标题的scrollPane中。怎么做? PLS
答案 0 :(得分:4)
简短的回答是,你不能(自动做)。
在将JScrollPane#setColumnHeaderView
设置为视口后,您可以拨打null
并将其传递给JTable
...
调用表JScrollPane
方法时,列标题由JTable
应用于addNotify
。这是为了响应包含该表的容器而被调用,该容器被添加到可显示的容器(如可见框架)中。
然后调用configureEnclosingScrollPane
<强>更新强>
上面的代码假定JScrollPane
和JTable
已经添加到已经可以显示的容器中,但情况可能并非总是如此。或者,您可以覆盖JTable#configureEnclosingScrollPane
方法并在需要时配置标题...
@Override
protected void configureEnclosingScrollPane() {
if (showHeaders) {
super.configureEnclosingScrollPane();
}
}
就个人而言,我会创建自己的自定义JTable
,其showColumnHeaders
属性,可用于根据我的需要打开和关闭标题...
答案 1 :(得分:3)
尝试下一个代码:
JTable t = new JTable(3,3);
JScrollPane jScrollPane = new JScrollPane(t);
t.setTableHeader(null);
jScrollPane.setColumnHeaderView(null);
或只是将tableHeader设置为null适用于我t.setTableHeader(null);