在Swing UI视图中更新表数据的问题

问题描述:

我在Netbeans中设计了一个用户界面,并且遇到了让我的某个表工作的​​问题。在它的数据时,我把这种方法不仅仅没有更新:在Swing 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); 
} 

的错误是对我评论了线发生的,我就如何解决这个问题完全糊涂了。

+0

如果需要双岗一问题,请大家帮忙,发布整个问题,不要让人们去寻找它。这个问题也是无关紧要的。您需要为我们提供一个可运行的示例,以便让我们高兴 – MadProgrammer 2013-03-14 00:15:11

+0

我会建议来自前一个线程的用户在正确的轨道上。你是否需要创建一个新的模型,或者你只是想更新屏幕上已经显示的内容? – MadProgrammer 2013-03-14 00:18:36

+0

使用标准的Java命名约定。变量名不能以大写字母开头。 – camickr 2013-03-14 02:17:35

开始通过阅读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读取更多的信息

+0

+1,提示读取API。 @ user2165938当您只需要一个参数并且您提供了两个参数时,您希望该方法如何工作? – camickr 2013-03-14 02:23:45