我有一个带有AbstractTableModel的JTable,其中包含ArrayList中的数据。列表只是几个元素,但对象的属性变化很快(可能每秒100次)
我想它会一直发挥不好的性能。
是否可以使用定时器每1秒触发一次JTable更新?
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
myModel.fireTableChanged(new TableModelEvent(myModel));
}
});
timer.start();
答案 0 :(得分:2)
使用SwingWorker
。您可以在doInBackground()
,publish()
中期结果的实施过程中收集数据,并event dispatch thread sustainable rate上的process()
更改TableModel
。一个完整的例子是here。