JTable中缺少列标题(JTable Missing Column Headers)

2019-09-29 15:49发布

很简单的问题。 不要抨击我请。 :)

我创建了一个表格模型通过扩展AbstractTableModel ,如下所示:

public class InventoryTableModel extends AbstractTableModel {
    private static final String[] COLUMN_NAMES = { "On Sale", "Name", "Selling Price", "Description" };

    @Override
    public int getColumnCount() {
        return COLUMN_NAMES.length;
    }

    @Override
    public int getRowCount() {
        return 0;
    }

    @Override
    public String getColumnName(int columnIndex) {
        return COLUMN_NAMES[columnIndex];
      }    

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        return null;
    }    
}

接下来,我创建了一个JTable使用该表的模型,并显示在布局面板BorderLayout

JTable inventoryTable = new JTable(new InventoryTableModel());        
mainPanel.add(inventoryTable, BorderLayout.CENTER);

需要注意的是mainPanel最后一个滚动窗格内结束:

scrollPane.setViewportView(mainPanel);

出于某种原因,我没有看到表头。 这是我所有的程序显示:

(注意,白色空间是该表。)

为了确保该表被妥善安置我修改了getRowCount方法返回1:

@Override
public int getRowCount() {
    return 1;
}

而现在,这是我所看到的:

谁能告诉我为什么我的列标题缺失? 我知道这是一些简单的,但我的大脑是油炸,我只是似乎无法弄清楚。

谢谢。

更新的基础上, 约什M的答案我放在桌上的滚动窗格内。 这工作,但这个是我的应用程序现在的样子:

注意垂直滚动条。

Answer 1:

更改:

mainPanel.add(inventoryTable, BorderLayout.CENTER);

mainPanel.add(new JScrollPane(inventoryTable), BorderLayout.CENTER);


文章来源: JTable Missing Column Headers