java - 刷新jTable

标签 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"
            }
        ));

最佳答案

都不是

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/

相关文章:

Java Swing 定时器

java - 隐藏/显示 jtable 中的行

java - 多重图中的所有简单路径(深度优先遍历)

java - 如何加粗形状的边框

java - jcombobox 中的键/值对

java - 使用 sql 数据库数据填充 jtable 时出现 nullpointerException

java - 两个日期之间的 JTable rowfilter,同一列

java - 如何返回接口(interface)对象?

java - Java 中的最大 SHA-1 哈希性能技巧

java - 如果使用特定参数调用方法,如何取消打印语句?