2013-03-13 187 views
-1

我在GUI上的表有字段,我想要發生的是當調用這個方法來創建一個新行並簡單地填寫信息時。該錯誤是本JTable模型填充

找到getrow

public void UpdateTable() 
{ 
    DefaultTableModel TableModel = new DefaultTableModel(); 
    for(Patient k: PatientList) 
    { 
     int TableID = k.getAccountNumber(); 
     String TableName = k.getName(); 
     int TableAge = k.getAge(); 
     String TableAddress = k.getAddress(); 
     String TableSex = k.getSex(); 
     String TablePhone = k.getPhone(); 

     //I get the error here 
     TableModel.addRow(TableID,TableName,TableAge,TableAddress,TableSex,TablePhone); 

     TableView.setModel(TableModel); 
    } 
} 

回答

0

看那docsDefaultTableModel#addRow沒有合適的方法。 addRow需要陣列Objects。你可以這樣做:

tableModel.addRow(new String[] { tableID, tableName, ... }); 

除了

  • 您是否知道您正在設置Patient模型?這將導致包含單個行的表。您可能需要將呼叫移至setModel外部您的for循環。
  • Java命名約定表明變量名稱以小寫字母開頭字母TableModeltableModel開頭。
+0

感謝你的幫助,我也做你說的一切,唯一的問題是它甚至在我使用Table.setModel(TableModel)之後不更新表; etc – 2013-03-13 15:11:06

+0

你確定'patientList'包含'Patient'數據嗎?即不是空的? – Reimeus 2013-03-13 15:14:11

+0

是的,我只在將患者添加到列表中後纔打電話給方法。列表和其他一切工作甚至顯示患者,我只是想添加一個表格視圖。我必須更新表格或其他內容才能顯示嗎? – 2013-03-13 15:24:27

0

您應該使用的確以下代碼:

public void UpdateTable() 
{ 
DefaultTableModel tableModel = (DefaultTableModel)TableName.getModel(); 
for(Patient k: PatientList) 
{ 
    int TableID = k.getAccountNumber(); 
    String TableName = k.getName(); 
    int TableAge = k.getAge(); 
    String TableAddress = k.getAddress(); 
    String TableSex = k.getSex(); 
    String TablePhone = k.getPhone(); 

    //Add row here. 
    tableModel.addRow(new String[]{TableID,TableName,TableAge,TableAddress,TableSex,TablePhone }); 
    } 
} 


看這裏DefaultTableModel.addRow()知道如何使用addRow()方法DefaultTableModel