当我将JTable
添加到JScrollPane
中时,为什么会自动出现tableHeader ?我想添加表到一个没有标题的scrollPane。怎么办?请
简短的回答是,你不能(自动地)。
你能做的就是调用JScrollPane#setColumnHeaderView
并在你将JTable
设置为视口后将其传递给null
…
当调用表的addNotify
方法时,JTable
将列标头应用于JScrollPane
。这是在响应一个容器时调用的,这个容器包含了表,被添加到一个可显示的容器中(比如一个可见的框架)。
然后调用configureEnclosingScrollPane
上面的代码假设JScrollPane
和JTable
已经添加到一个已经可以显示的容器中,但情况可能并不总是这样。或者,您可以重写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);