2016-03-08 85 views
0

爲什麼我的表在設置values後沒有更新。我有setValuesAt方法,但它不起作用。JTable在編輯後更新單元格值

String[] ColumnNames = {"Register","Value"}; 
    String[][] data = new String[Integer.parseInt(Amount_Text_Field.getText())][ColumnNames.length]; 
    DefaultTableModel model = new DefaultTableModel(data, ColumnNames) 
    { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public boolean isCellEditable(int row, int column) 
     { 
      return true; 

     } 

     @Override 
     public void setValueAt(Object value, int row, int column) { 

      data[row][column]=(String) value; 

      fireTableCellUpdated(row, column); 
     } 
    }; 
+0

沒有必要重寫DefaultTableModel的setValueAt()方法。 DefaultTableModel已經實現了該方法。您只需要重寫isCellEditable()方法。 – camickr

回答

3

沒有必要重寫DefaultTableModel的setValueAt()方法。 DefaultTableModel已經實現了該方法。

String[][] data = new String[Integer.parseInt(Amount_Text_Field.getText())][ColumnNames.length]; 

當上述語句被調用時,我猜你的文本字段不包含任何數據。所以沒有數據要添加到表格中。

如果你想用於輸入數據到文本字段,那麼你需要有一個像「添加數據」按鈕。然後在按鈕的ActionListener你做這樣的事情:

String[] row = new String[Integer.parseInt(Amount_Text_Field.getText())][ColumnNames.length]; 
model.addRow(row); 

此外,變量名不應該與一個大寫字母開頭。有些是正確的,其他不是。始終如一!!!