刷新jTable

时间:2012-08-22 17:05:18

标签: java swing jtable defaulttablemodel

我似乎无法让我的桌子刷新。我创建了一个调用jTable1.repaint();

的刷新按钮
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt)        
// Reader Refresh
        jTable1.repaint();
    }

我还尝试在RegistryValues

按钮中再次回顾RegistryValues.arp(null);
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt)        
// Reader Refresh
        RegistryValues.arp(null);
    }

还尝试将注册表值与重新组合在按钮中。

以下是我jTable的代码。 RegistryValues来自另一个使用JNA读取注册表的类。

jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {"Protected Mode at Startup", RegistryValues.arp(null)},
                {"Display PDF in browser", RegistryValues.arb(null)},
                {"EULA Accepted?", RegistryValues.are(null)},
                {null, null}
            },
            new String [] {
                "Software", "Status"
            }
        ));

1 个答案:

答案 0 :(得分:3)

无论

jTable1.repaint();

RegistryValues.arp(null);

实际上会使用新值刷新表。为此,您需要更新当前的表模型或在ActionListener中设置新模型。

当您使用可变的DefaultTableModel时,您可以为模型创建更新辅助方法。

类似的东西:

DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setValueAt(RegistryValues.arp(null), 0, 1);
// set more row data, etc.

注意:您可以将模型保存为类成员变量,无需进行强制转换。