我正在 Netbeans 中设计 UI,但在使我的一个表正常工作时遇到问题。当我调用此方法时,其中的数据不会更新:
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);
}
错误发生在我评论的行上,我完全不知道如何解决这个问题。
最佳答案
首先阅读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();
因为它们没有增加任何值(value)
我强烈建议您阅读How to use tables了解更多信息
关于java - 在 Swing UI View 中更新表数据时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15398899/