【问题标题】:How can I fill the height of JScrollPane with empty JTable Rows?如何用空的 JTable Rows 填充 JScrollPane 的高度?
【发布时间】:2011-05-13 21:04:07
【问题描述】:

我在 JScrollPane 中放置了一个 JTable,但该表仅包含几行,这使得窗格中的其余空间为空。

有什么办法可以让 JTable 填满整个窗格?比如说,放置空行以便填充窗格。

谢谢

【问题讨论】:

    标签: java swing jtable


    【解决方案1】:
    table.setFillsViewportHeight( true );
    

    【讨论】:

    • 据我所知,这只会用表格背景颜色填充视口,而不是空行 - 猜猜这取决于需要什么。就个人而言,我认为我更喜欢这个外观。
    • 是的,就是这样。添加额外的行(对我来说)没有意义,因为您的模型不准确,因为它包含不包含任何数据的填充行。
    【解决方案2】:

    JTable 方法setPreferredScrollableViewportSize() 是另一种管理屏幕空间的方法。有一个example here

    【讨论】:

      【解决方案3】:

      我不确定这是否是最好的方法,但它应该可以正常工作:

      int rows = jTable1.getRowCount();
          int rowHeight = jTable1.getRowHeight();
          int tableHeight = jTable1.getTableHeader().getHeight()+(rows*rowHeight);
          System.out.println("JScrollpane: "+jScrollPane1.getViewport().getHeight());
          while( tableHeight<jScrollPane1.getViewport().getHeight()){
              System.out.println("JTable: "+tableHeight);
              ((DefaultTableModel) jTable1.getModel()).addRow(new Object[]{null,null,null,null});
              tableHeight+=rowHeight;
          }
      

      显然,您需要将模型和插入的数据更改为您正在使用的任何内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-10
        • 2014-07-16
        • 2015-03-27
        • 2012-12-07
        • 1970-01-01
        • 2011-12-13
        • 1970-01-01
        相关资源
        最近更新 更多