2013-03-13 103 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