Java JTable缺少列标题
非常简单的问题。请不要打我。:) 我通过扩展Java JTable缺少列标题,java,swing,jtable,invisible,jtableheader,Java,Swing,Jtable,Invisible,Jtableheader,非常简单的问题。请不要打我。:) 我通过扩展AbstractTableModel创建了一个表模型,如下所示: public class InventoryTableModel extends AbstractTableModel { private static final String[] COLUMN_NAMES = { "On Sale", "Name", "Selling Price", "Description" }; @Override public int
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;
}
现在我看到的是:
有人能告诉我为什么我的列标题丢失了吗?我知道这很简单,但我的大脑被炸了,我就是想不出来
多谢各位
更新,基于我把表格放在一个滚动窗格中。这是可行的,但我的应用程序现在是这样的:
注意垂直滚动条。更改:
mainPanel.add(inventoryTable, BorderLayout.CENTER);
到
JTable是否必须始终位于滚动窗格中?另外,你看到我更新的帖子说mainPanel位于滚动窗格中了吗?它不必位于
JScrollPane
中,但是如果你不将它放在滚动窗格中,你必须分别添加表头和表。把它放在JScrollPane
中更容易。另外,如果您的数据超出其容器的界限,您可以滚动。请查看我更新的帖子。您知道为什么按照您的建议操作会导致滚动窗格(外部滚动窗格)显示垂直滚动条吗?
mainPanel.add(new JScrollPane(inventoryTable), BorderLayout.CENTER);