Bonjour!!

Je voudrais réactualiser l'affichage d'informations d'une BD dans une jtable qui est affichée dans une fenêtre toute les n secondes, pour cela j'utilise un timer mais le problème est que si je mets tout mon code dans la méthode run() du timer :plusieurs fenêtres s'affichent et sinon (si je ne mets que la requête d'accès à la base de données et l'affichage de la table):certaines variables (panel, jframe...) ne sont plus reconnus.

aidez moi svp c'est très important pour moi!!!

Voivi le code que j'utilise:

package mon_package;

import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.Dimension;
import java.sql.*;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;
import java.util.Timer;
import java.util.TimerTask;

public class test1 {

public static void main(String[] args) {
Timer minuteur = new Timer();

/*******************************************************************************/

// Charger le pilote Oracle
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
}
catch (SQLException ex) {
}


/*******************************************************************************/
TimerTask tache = new TimerTask() {
public void run() {
System.out.println("coucou !");

// Connexion à la base de données
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:nom_base", "login", "password");
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery ("select * from table");

// Affichage du résultat

Vector values = new Vector();
while(rset.next())
{
Vector tab = new Vector();
tab.add(rset.getString("col1")); //on met le nom exact de la colonne affichée dans la base
//a refaire pour les autres colones
tab.add(rset.getString("col2"));
tab.add(rset.getString("col3"));
values.add(tab);
}
Vector names= new Vector();


names.addElement("titre1");
//a refaire pour plus de colone
names.addElement("titre2");
names.addElement("titre3");
names.addElement("titre4");

DefaultTableModel model = new DefaultTableModel(values, names);

JTable tab1 = new JTable(model);

JPanel pan = new JPanel();
//Définition de la taille du tableau
tab1.setPreferredScrollableViewportSize(new Dimension(1000, 600));



//Ajout d'une scrollBar en cas de dépassement de la dimension
pan.add(new JScrollPane(tab1));

//nouvelle fenêtre
JFrame fen = new JFrame();

//taille de la fenêtre
fen.setSize(500, 500);

//Ajout du JPanel a la JFrame
fen.setContentPane(pan);
}
catch (SQLException ex) {
}


}
};
minuteur.schedule(tache, 0, 1000);
}
}