首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新jTable

刷新jTable
EN

Stack Overflow用户
提问于 2012-08-23 01:05:18
回答 1查看 328关注 0票数 0

我好像不能刷新我的桌子。我创建了一个刷新按钮,它调用jTable1.repaint();

代码语言:javascript
复制
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt)        
// Reader Refresh
        jTable1.repaint();
    }

我还尝试像RegistryValues.arp(null);一样在按钮中再次调用RegistryValues

代码语言:javascript
复制
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt)        
// Reader Refresh
        RegistryValues.arp(null);
    }

我还尝试了在按钮中组合registryvalue和repaint。

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

代码语言:javascript
复制
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"
            }
        ));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-23 01:16:38

都不是

代码语言:javascript
复制
jTable1.repaint();

代码语言:javascript
复制
RegistryValues.arp(null);

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

由于您使用的是可变的DefaultTableModel,因此可以为模型创建一个update helper方法。

类似于:

代码语言:javascript
复制
DefaultTableModel model = (DefaultTableModel) table.getModel();
model.setValueAt(RegistryValues.arp(null), 0, 1);
// set more row data, etc.

注意:您可以将模型保存为类成员变量,并消除强制转换的需要。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12078061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档