2011-10-12 80 views
1

我使用帶有水平和垂直滾動條的JTable。數據行之後,我的JTable有空的空間。 當我打開位於桌子下方的面板時,它隱藏了JTable的一部分,滾動顯示在JTable上。這是正常的行爲,但隨後我關閉該面板,沒有數據的空白空間變成灰色而不是白色。 這隻發生在我的JTable上有水平滾動條時。我想我必須強制JTable重新繪製,我試圖resizeAndRepaint()TableHeaderJTable但它沒有工作。JTable刷新

請幫忙!謝謝! 這裏是如果對錶進行調整大小的任何動作

for (int i = 0; i < columsNum; i++){ 
     TableColumn column = this.getColumnModel().getColumn(i); 
     int preferedSize = //current size 
     int minimumSize = // min size 
     if (minimumSize != ColumnSizeCalculator.UNDEFINED_WIDTH) 
      column.setMinWidth(minimumSize);    
     column.setPreferredWidth(preferedSize);   
    } 

    this.revalidate(); 
    this.repaint(); 
+4

請發佈SSCCE! – jfpoilpret

+1

如果Martin不熟悉SSCCE概念,請參閱:http://sscce.org –

+1

Martin,這不是SSCCE。 –

回答

4

缺省情況下,一個JTable沒有填滿一個滾動窗格的視口在垂直方向調整大小()調用代碼。嘗試致電

table.setFillsViewportHeight(true); 

在您的表上,然後重新繪製表應該工作。

+0

謝謝!!!!!!!你真的幫了我! – Martin