如何在JTable中刷新数据并显示更新列表

时间:2014-08-16 05:57:13

标签: java swing jtable

我是java的新手并尝试刷新jTable。我想要做的是现在显示Jtable中的数据列表我有一个刷新图标,如果我点击它,它刷新表并更新其中的记录。 我尝试过很多东西但没有成功。我所尝试的是:

//参加了参考。帮助:

尝试1:

private void remakeData(CollectionType< Objects > name) {
    model.setRowCount(0);
    for (CollectionType Objects : name){
    String n = Object.getName();
    String e = Object.getEmail();
    model.insertRow(model.getRowCount(),new Object[] { n,e });
    }}

尝试2:

tableModel.fireTableDataChanged();

尝试3:

list_asset.invalidate();  // list_asset is my jTable
list_asset.repaint();

尝试4:

((AbstractTableModel) list_asset.getModel()).fireTableCellUpdated(data.size(), 0);

尝试5:

jPanel1.revalidate();
jPanel1.repaint();
tableModel.setRowCount(0);
tableModel = new DefaultTableModel(data,columnNames); 
list_asset.setModel(tableModel);

我已经尝试了很多东西,而在google或Stackoverflow上搜索只发现我已经尝试过的东西。

请帮我实现这个目标。

Thankx

1 个答案:

答案 0 :(得分:1)

DefaultTableModel将通知其侦听器发生更改,并且任何侦听表都会自行更新。如果这种方法是你的第一次尝试没有成功,那么问题就出在其他地方。特别是,您不应该自己无效,重新验证或触发任何表模型事件。在这个完整的example中,添加行按钮会调用addRow(),它会将请求转发给TableModel

private DefaultTableModel dtm = new DefaultTableModel(…) {…}

private void addRow() {
    dtm.addRow(new Object[]{
        …
    });

}

image