簡體   English   中英

Jtable保留列寬

[英]Jtable retain column width

我有一個Jtable,我在其中使用setDataVector函數設置數據。它工作正常,但假設如果我只是通過使用鼠標拖動來更改了某些列寬,並且在同一表中加載了新數據之后,該列的寬度將重置到它的默認位置。所以基本上我想保留該寬度,即使加載新數據也是如此。

當您使用setDataVector()方法時,表的結構可能會更改,因此該表會自動重新創建TableColumnModel,並且您將丟失自定義設置。

首次創建JTable時,請使用如下代碼:

JTable table = new JTable(...);
table.setAutoCreateColumnsFromModel( false );

以防止重新創建TableColumnModel。

發生這種情況是因為當您根據文檔使用setDataVector()來重新創建列並且列寬更改為默認值時。

嘗試使用setAutoCreateColumnsFromModel()來防止該行為。

當您使用自定義表模型時。 不要使用setDateVector()來重新創建列。 您可以使用setPreferredWidth()方法手動管理列寬,如下所示:

      table.setModel(buildTableModel(rs));
      TableColumnModel tcm = table.getColumnModel();
      tcm.getColumn(0).setPreferredWidth(80);  
      tcm.getColumn(1).setPreferredWidth(200);  
      tcm.getColumn(2).setPreferredWidth(100);  
      tcm.getColumn(3).setPreferredWidth(100);  
      tcm.getColumn(4).setPreferredWidth(100);  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM