JTable動態刷新數據

http://www.cnblogs.com/fnlingnzb-learner/p/6025408.htmlhtml

注意下面幾個方法的應用場景,不限於JTable,其餘swing組件同樣前端

————————————————————————————————————————————————————————————————————————————————java

JTable動態刷新數據

最近在作一個純java有關的小軟件,由於須要作前端,因此我用到了swing。swing裏面涵蓋的細節真的是太多了,稍一不留神,你的軟件就面臨易崩潰或者界面極度醜陋的情況。很少說了,談談此次的主題JTable吧。佈局

因爲個人軟件須要定時刷新界面,因此須要對JTable進行實時更新,但又不單單是單純的添加數據,因此形成了不少麻煩。post

其實最簡單的,你用 Vector 作 table 的模型的話,只要改變 Vector 中的數據,updateUI,表格就刷新了。其中,第一個是個 Vector 的 Vector,是 data,就是說先把一行的 data 放在一個 Vector 裏,而後把這些行Vector 放到一個總的 Vector 裏,而第二個是 Vector是title。url

直接上代碼吧:spa

複製代碼
 1 private void InitTable() { //初始化table  2  InitColumnName();  3  InitRowData();  4 tableModel = new DefaultTableModel(rowData, columnName);  5 table = new JTable(tableModel);  6 TableColumn firstColumn = table.getColumnModel().getColumn(0);  7 firstColumn.setMaxWidth(150);  8 firstColumn.setMinWidth(150);  9 TableColumn secondColumn = table.getColumnModel().getColumn(1); 10 secondColumn.setMaxWidth(80); 11 secondColumn.setMinWidth(80); 12 TableColumn thirdColumn = table.getColumnModel().getColumn(2); 13 thirdColumn.setMaxWidth(60); 14 thirdColumn.setMinWidth(60); 15 TableColumn fourthColumn = table.getColumnModel().getColumn(3); 16 fourthColumn.setMaxWidth(120); 17 fourthColumn.setMinWidth(120); 18 TableColumn fifthColumn = table.getColumnModel().getColumn(4); 19 fifthColumn.setMaxWidth(150); 20 fifthColumn.setMinWidth(150); 21 TableColumn sixthColumn = table.getColumnModel().getColumn(5); 22 sixthColumn.setMaxWidth(120); 23 sixthColumn.setMinWidth(120); 24 }
複製代碼

 

定時刷新:指針

 

複製代碼
1 tableModel.getDataVector().clear(); 2 InitRowData(); 3 //table.validate(); 頻繁刷新形成空指針異常 4 //table.updateUI(); 5 scrollPane.validate(); 6 //scrollPane.updateUI();
複製代碼

 

附錄:code

  public void validate()

驗證此容器及其全部子組件。

使用 validate 方法會使容器再次佈置其子組件。已經佈置容器後,在修改此容器的子組件的時候(在容器中添加或移除組件,或者更改與佈局相關的信息),應該調用上述方法。htm

 


public void repaint()

重繪此組件。

若是此組件是輕量組件,則此方法會盡快調用此組件的  方法。不然此方法會盡快調用此組件的  方法。

public void updateUIUIManager 發出的關於 L&F 已經更改的通知。用 UIManager 的最新版本替換當前的 UI 對象。覆蓋: 類 JComponent 中的 updateUI另請參見: paintupdate
相關文章
相關標籤/搜索