import javax.swing.table.*; public abstract class RefreshAbstractTableModel extends AbstractTableModel { public RefreshAbstractTableModel() { Thread refreshThread=new Thread() { public void run() { //int oldRowCount=0,newRowCount; try { for (;;) { sleep(5000); /* newRowCount=getRowCount(); if (oldRowCountnewRowCount) fireTableRowsDeleted(newRowCount-1,oldRowCount-1); fireTableRowsUpdated(0,newRowCount-1); oldRowCount=newRowCount; */ fireTableDataChanged(); } } catch(Exception e) { e.printStackTrace(); } } }; refreshThread.start(); } public Class getColumnClass(int col) { return getValueAt(0,col).getClass(); } }