2014-07-12 45 views
2

我想實現我的程序機制將自動重新調整JScrollPane中,當列是長在JScrollPane的視口中得到充分看出:如何使用JTable的設置JScrollPane的自動RESCAL內容

比如我的JTable是這樣的:

___________ JScrollPanel _____________ 
    |          | 
    |  __________ JTable _______________|_ ___  
    | |________|______|______|_____|____|_|___|  
    | |  |  |  |  | | | | 
    | |________|______|______|_____|____|_|___| 
    |______________________________________| 

現在怎麼設置爲自動RESCAL JscrollPanel向更廣泛的JTable

___________ JScrollPanel ______________________ 
    |          <------>|   
    |  __________ JTable _________________ ___ | 
    | |________|______|______|_____|____|_|___| | 
    | |  |  |  |  | | | | | 
    | |________|______|______|_____|____|_|___| | 
    |          <------->| 
    |______________________________________________| 

有時我得到JTableModel和我的數據不知道數據將會有多長,我JTable頭。

+1

關鍵信息將是您使用的佈局管理器以及如何嘗試調整組件和GUI的大小。如果可能,最好不要直接調整大小,而是讓組件和智能佈局經理決定最佳大小應該是多少。 –

+0

我使用javax.swing.GroupLayout它是Netbeans pallete中的標準佈局。我試圖不在JTable中設置寬度,我在JScrollPanel中設置了大小。但是,當我的JTabelModel數據填充我的JTable時,JTable有時會(使用數據)向較短的JScrollPanel – user3719630

+1

延長,我會爲您的GUI使用另一個佈局。例如,將JScrollPane添加到使用位於CENTER位置的JPanel的BorderLayout中,並確保在顯示它之前將GUI打包()。 –

回答

1

JTable implements Scrollable,所以你可以利用getPreferredScrollableViewportSize()返回的結果。默認實現可能並不理想,但您可以重寫該方法以更好地適應。此example返回表格的getRowHeight()的倍數。對於列寬,您可能想要嘗試setAutoResizeMode()可用的設置,討論here

相關問題