Java JTable进入JScrollPane,不带标题

Java JTable进入JScrollPane,不带标题,java,swing,jtable,jtableheader,Java,Swing,Jtable,Jtableheader,为什么在我将JTable添加到JScrollPane中时会自动出现tableHeader。我想将表格添加到没有标题的滚动窗格中。如何做?请简而言之,你不能(自动完成) 您可以调用JScrollPane#setColumnHeaderView并在将JTable设置到视口后将其传递给null 调用tablesaddNotify方法时,JTable将列标题应用于JScrollPane。调用此函数是为了响应包含表的容器被添加到可显示容器(如可视框架)中 然后调用configureEnclosuringS

为什么在我将
JTable
添加到
JScrollPane
中时会自动出现tableHeader。我想将表格添加到没有标题的滚动窗格中。如何做?请

简而言之,你不能(自动完成)

您可以调用
JScrollPane#setColumnHeaderView
并在将
JTable
设置到视口后将其传递给
null

调用tables
addNotify
方法时,
JTable
将列标题应用于
JScrollPane
。调用此函数是为了响应包含表的容器被添加到可显示容器(如可视框架)中

然后调用
configureEnclosuringScrollPane

已更新

上述代码假设已将
JScrollPane
JTable
添加到已可显示的容器中,但情况可能并非总是如此。或者,您可以覆盖
JTable#configureEnclosuringsCrollPane
方法,并在需要时配置标题

@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)

在您的上一个问题中,有人要求提供一个。你应该用一个来编辑你的帖子,有人会重新打开你的问题,而不是用更少的信息发布另一个问题。不知道你在期待什么。正如其他人所说,您提供的代码不会导致NPE,这就是为什么我们需要可运行的代码来测试它;工作方式与JScrollPane.setColumnHeaderView(null)相同;不知道您的案例中为什么会有NPE,请确定JTable initializeduse JTable.setTableHeader(null);只是,由于某些原因,人们关闭了他的另一个问题(),我重新打开了这个问题;