Sai che non ho ancora capito precisamente dove sto sbagliando!

Sicuramente perchè mi mancano proprio le basi... ma se il mio codice è questo:

codice:
class MyTask extends TimerTask {
    private Runnable refrashframe;

    MyTask(Runnable aThis) {
        refrashframe = aThis;

    }

    @Override
    public void run() {
        System.out.println("Running the task");
        SwingUtilities.invokeLater(refrashframe);
    }
}

public class DesktopApplication1View extends FrameView {

    final Runnable doCaricaDati = new Runnable() {

        @Override
        public void run() {
            System.out.println("run doCaricaDati");
            CaricaDati();
        }
    };

    public DesktopApplication1View(SingleFrameApplication app) {
        super(app);
        initComponents();
        java.util.Timer timer = new java.util.Timer();
        java.util.TimerTask task = new MyTask(doCaricaDati);
        timer.schedule(task, 0, 500); 
        ecc...
    }

    public void CaricaDati() {
        mainPanel.setCursor(new Cursor(Cursor.WAIT_CURSOR));
        try {
            try {
                Connection con = desktopapplication1.DesktopApplication1.MyConection();
                Statement st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
                String query = "SELECT ID_IMPIANTO, NOME_IMPIANTO, RAG_SOC, DES_MARCA, DES_MODELLO, LAST_UPDATE, MAX_ERROR_LEVEL, COUNT_ERROR, FLG_EVASO FROM MIT.WHD_ALLARMI_IMPIANTI";
                ResultSet rs = st.executeQuery(query);
                final GenericTableModel model = new GenericTableModel();
                model.parseResultSet(rs);

                SwingUtilities.invokeLater(new Runnable() {

                    public void run() {
                        int app = jTable1.getSelectedRow();
                        jTable1.setModel(model);
                        if (app >= 0) {
                            jTable1.setRowSelectionInterval(app, app);
                        }
                    }
                });

                /*GenericTableModel model = new GenericTableModel();
                model.parseResultSet(rs);
                jTable1.setModel(model);*/               

                st.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        } finally {
            mainPanel.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
        }
    }
Sono veramente in difficoltà nel capire cosa non va... anche se però anch'io immagino che una cosa che si sa risulta sempre molto semplice

Ti ho postato quello che secondo me è il core del problema, se mi evidenzi dove sbaglio in rosso... te ne sarei molto grato!