我似乎无法刷新我的表格。我创建了一个调用 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"
}
));
最佳答案
都不是
jTable1.repaint();
或
RegistryValues.arp(null);
实际上会用新值刷新表格。为此,您需要更新当前表模型或在 ActionListener 中设置新模型。
当您使用DefaultTableModel时,它是可变的,您可以为模型创建一个更新辅助方法。
类似于:
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setValueAt(RegistryValues.arp(null), 0, 1);
// set more row data, etc.
注意:您可以将模型保存为类成员变量并消除转换的需要。
关于java - 刷新jTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12078061/