非常简单的问题。请不要打击我。 :)
我通过扩展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;
}
现在这就是我所看到的:
有谁能告诉我为什么我的列标题丢失了?我知道这很简单,但是我的脑子很油腻,我似乎无法弄明白。
谢谢。
更新,基于Josh M's answer我将表格放在滚动窗格中。这有效,但这就是我的应用程序现在的样子:
请注意垂直滚动条。
答案 0 :(得分:1)
变化:
mainPanel.add(inventoryTable, BorderLayout.CENTER);
要
mainPanel.add(new JScrollPane(inventoryTable), BorderLayout.CENTER);