我好像不能刷新我的桌子。我创建了一个刷新按钮,它调用jTable1.repaint();
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt)
// Reader Refresh
jTable1.repaint();
}我还尝试像RegistryValues.arp(null);一样在按钮中再次调用RegistryValues
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt)
// Reader Refresh
RegistryValues.arp(null);
}我还尝试了在按钮中组合registryvalue和repaint。
下面是我的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"
}
));发布于 2012-08-23 01:16:38
都不是
jTable1.repaint();或
RegistryValues.arp(null);将实际使用新值刷新表。为此,您需要更新当前的表格模型,或者在ActionListener中设置一个新模型。
由于您使用的是可变的DefaultTableModel,因此可以为模型创建一个update helper方法。
类似于:
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setValueAt(RegistryValues.arp(null), 0, 1);
// set more row data, etc.注意:您可以将模型保存为类成员变量,并消除强制转换的需要。
https://stackoverflow.com/questions/12078061
复制相似问题