我正在Netbeans中设计一个用户界面,并且在让我的一个表工作时遇到了问题。当我调用此方法时,其中的数据不会更新:
public void UpdateTable() {
DefaultTableModel TableModel = new DefaultTableModel();
//(new Object[] { "ID", "Name", "Age" "Sex" "Address" "blah" }, 5)
TableView.setModel(TableModel);
for (Patient k : PatientList) {
String TableID = String.valueOf(k.getAccountNumber());
String TableName = k.getName();
String TableAge = String.valueOf(k.getAge());
String TableAddress = k.getAddress();
String TableSex = k.getSex();
String TablePhone = k.getPhone();
Object[] Col = { "Name", "Code", "age", "blah", "Who", "ghg" };
Object[] Data = { TableID, TableName, TableAge, TableAddress,
TableSex, TablePhone };
TableModel.addRow(Data, Col); //here
JTableHeader header = TableView.getTableHeader();
repaint();
}
System.out.println("Model Set");
TableView.setModel(TableModel);
}
错误发生在我评论的那一行上,我对如何解决这个问题感到很困惑。
答案 0 :(得分:1)
首先阅读Java Docs
使用DefaultTableModel
创建“空”表模型的方法之一是做类似的事情......
DefaultTableModel model = new DefaultTableModel(
new Object[]{"ID", "Name", "Age" "Sex" "Address" "blah"},
0);
这很重要。您不希望模型中存在任何现有行。
只有两种addRow
方法。
Object[] Data = { TableID, TableName, TableAge, TableAddress, TableSex, TablePhone };
model.addRow(data);
摆脱第一个TableView.setModel(TableModel);
和JTableHeader header = TableView.getTableHeader();
以及repaint();
,因为它们没有添加任何值
我强烈建议您阅读How to use tables以获取更多信息