当用户提示我这样做时,我想要填充一个表格。问题是,我无法预测表最终会有多少行。在我的面板的构造函数中,将显示表格,我有
// 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里面没有桌子的轮廓。为什么不显示表格以及如何修复它?
答案 0 :(得分:17)
您应该将组件添加到JScrollPane,而不是添加到其JViewport:
scrollPane.getViewport ().add (table);
答案 1 :(得分:5)
而不是将表添加到JScrollPane创建scrollpane的视口,然后将其视图设置为表。
改为使用以下代码:
scrollPane.setViewportView(table)
答案 2 :(得分:3)
通常,即使您还没有值,也可以同时创建JTable
和JScrollPane
。
最好使用您扩展的DefaultTableModel或TableModel
作为动态表格。