Java Swing - 使用Timer刷新jTable

use*_*586 4 java swing swingbuilder

我有2个简单的数据库查询JTable(客户端和服务器).

客户端具有查看记录,打印,保存PDF等所有功能.服务器自动刷新数据库记录到表,计时器为30秒.(尚未实现.)

我的问题是我可以将数据库记录显示到表而没有以下代码的问题.

PreparedStatement pst = conn.prepareStatement("SQL");
ResultSet rs = pst.ExecuteQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));
Run Code Online (Sandbox Code Playgroud)

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

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

Rei*_*eus 10

你可以这样做:

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

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

timer.setDelay(30000); // delay for 30 seconds
timer.start();
Run Code Online (Sandbox Code Playgroud)

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

  • 确保它是`javax.swing.Timer`,而不是`java.util.Timer`. (2认同)