2011-10-24 44 views
0

更新我使用一個JTable與AbstractTableModel上:列不JTable中

_model = new AbstractTableModel() { 

      @Override 
      public int getColumnCount() { 
       return _columns.size(); 
      } 
      @Override 
      public int getRowCount() { 
       return _data.size(); 
      } 
      @Override 
      public Object getValueAt(int row, int col) { 
       return _data.get(row)[col]; 
      } 

      @Override 
      public String getColumnName(int i) { 
       return _columns.get(i); 
      } 
     }; 

當行和列的改變,呼喚table.revalidate()只顯示更改的行。列與以前完全一樣。有沒有辦法強制更新整個表?

+0

請提供一個[sscce](http://sscce.org/),展示您描述的問題。 – trashgod

回答

2

如果更改列,你應該在模型調用fireTableStructureChanged

+0

假設你的意思是:「模型應該觸發」(而不是「一些外部代碼應該代表模型啓動」),這是正確的:-) – kleopatra

0

它不應該是

@Override 
       public Object getValueAt(int row, int col) { 
        return _data.get[row][col]; 
       } 
+0

我會是如果它是一個2d數組,而不是數組列表。 – NoBugs