2012-12-27 52 views
4

我有2个简单的数据库查询JTable(客户端和服务器)。Java Swing - 使用定时器刷新jTable

客户端具有查看记录,打印,保存PDF等所有功能 服务器自动刷新数据库记录到30秒的定时器表。 (还没有实现)

我的问题是我可以显示数据库记录到表中没有问题与下面的代码。

PreparedStatement pst = conn.prepareStatement("SQL"); 
ResultSet rs = pst.ExecuteQuery(); 
jTable1.setModel(DbUtils.resultSetToTableModel(rs)); 

但我希望用上面的代码与计时器实现自动刷新表。

例如,我将代码插入到一个名为public void Update_Records()的方法中。我应该如何使用计时器来调用该方法每隔30秒将记录显示到表格中?

回答

10

你可以这样做:

Timer timer = new Timer(0, new ActionListener() { 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     updateRecords(); 
    } 
}); 

timer.setDelay(30000); // delay for 30 seconds 
timer.start(); 

旁白:的Java命名约定必须开始与小写的方法和下划线一般不使用,因此Update_Records变得updateRecords

+2

确保它是'javax.swing.Timer',而不是'java.util.Timer'。 – mre

+0

请学习java命名约定并坚持使用它们 kleopatra

+0

好点@kleopatra,更新。 – Reimeus