java - 动态添加 JTable 到 JScrollPane

标签 java swing jtable jscrollpane

我有一个表,当用户提示我这样做时,我想填充它。问题是,我无法预料表格最终会有多少行。在将显示表格的面板的构造函数中,我有

    // 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 所在位置的轮廓,里面没有表格。为什么表格不显示,我该如何解决?

最佳答案

您不应将组件添加到 JScrollPane,而应添加到其 JViewport:

scrollPane.getViewport ().add (table);

关于java - 动态添加 JTable 到 JScrollPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14899918/

相关文章:

java - JMockit & 多个本地方法

java - 使用 Fusion Table API 拒绝授权

java - 将 JLabel 添加到 JMapViewer

java - 在 Java 中模拟内存屏障以消除 volatile 读取

java - 来自某个类的对象是否可以输出具有唯一 JLabel 的相同格式的 JPanel?

java - 在椭圆形上画绳子

java - JTable 表头格式

java - Jtable 上的 Ctrl-V

Java - 在 JTable 中渲染图像

java - 如何使用 Java 将 url(http 文件)上传到我的网络服务器?