java自动刷新jtable_如何自动更新JTable中的数据(代码实现)
时间: 2024-02-24 16:00:11 浏览: 248
要实现JTable自动更新数据,可以使用TableModel来管理数据,并使用Timer定期更新数据。以下是一个简单的示例代码:
```
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
public class AutoRefreshJTable extends JFrame {
private JTable table;
private DefaultTableModel model;
private Timer timer;
public AutoRefreshJTable() {
initUI();
initData();
initTimer();
}
private void initUI() {
setTitle("Auto Refresh JTable");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
model = new DefaultTableModel(new Object[]{"ID", "Name", "Score"}, 0);
table = new JTable(model);
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
private void initData() {
for (int i = 1; i <= 10; i++) {
model.addRow(new Object[]{i, "Student " + i, new Random().nextInt(100)});
}
}
private void initTimer() {
timer = new Timer(3000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for (int i = 0; i < model.getRowCount(); i++) {
model.setValueAt(new Random().nextInt(100), i, 2);
}
}
});
timer.start();
}
public static void main(String[] args) {
new AutoRefreshJTable();
}
}
```
上述代码中,首先创建了一个JTable,并使用DefaultTableModel来管理数据。然后使用Timer定期更新数据,每隔3秒钟随机生成新的分数更新表格中的数据。最后启动程序,即可看到JTable自动更新数据的效果。
阅读全文