我有一个表,当用户提示我这样做时,我想填充该表。 问题是,我无法预测表最终会有多少行。 在我的面板的构造函数中,将显示表格,我有
// add empty scrollPane to JPanel which will later hold table
scrollPane = new JScrollPane();
add(scrollPane);
这个类包含一个方法,当我想最终显示表格时会调用该方法
public void displayTable(String[] columnNames, String[][] dataValues)
{
table = new JTable(dataValues, columnNames);
table.setPreferredScrollableViewportSize(new Dimension(300, 80));
table.setFillsViewportHeight(true);
scrollPane.add(table);
this.setVisible(true);
scrollPane.repaint();
}
问题是,该表永远不会显示。 我只看到 ScrollPane 所在位置的轮廓,内部没有表格。 为什么表格不显示以及如何修复它?
您应该将组件添加到其 JViewport,而不是 JScrollPane:
scrollPane.getViewport ().add (table);
不要将表格添加到 JScrollPane,而是创建一个滚动窗格的视口,然后将其视图设置为表格。
使用以下代码代替:
scrollPane.setViewportView(table)
当我将表格添加到 JscrollPane 并调整其视图端口大小后没有滚动条时,设置自动调整大小模式关闭也对我有所帮助。
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);