刷新jTable

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

 private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) // Reader Refresh jTable1.repaint(); } 

我还尝试在RegistryValues.arp(null);类的按钮中再次调用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" } )); 

也不

 jTable1.repaint(); 

要么

 RegistryValues.arp(null); 

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

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

就像是:

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

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