Je voudrais savoir comment créer une Jprogressbar sur le contenu d'un ResultSet:
L'idée est que j'affiche des données provenant d'une base de données et je voudrais que la barre avance en temps réel à chaque fois qu'il y a un nouvel enregistrement dans le ResultSet (sachant que je connais exactement le nobre d'enregistrement qu'on devrait avoir à la fin.
Voici mon code : le problème est que la barre ne progresse que si j'enlève le test sur le traitement.(la partie test en gras)
Si quelqu'un a une idée sur l'origine du problème n'hésitez pas. Merci bcp!!
publicstaticvoid main(String args[]){ new test(); } //La classe qui correspond au thread pour faire avancer la barre class ThreadAvanceBarre extendsThread{ JProgressBar barre;
public ThreadAvanceBarre(JProgressBar b){
barre=b;
}
publicvoid run(){
// Charger le pilote Oracle try{ DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
// Connexion à la base de données Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:fegte", "user", "password");
finalStatement stmt1 = conn.createStatement(); //Envoyer la requête et récupérer le résulatat ResultSet rset = stmt.executeQuery("select count(*) from fastpa where nolan=2");
J'ai fait ce code et il marche mais le problème est que quand le programme qui est en arrière plan termine la progressbar s'arrête (même si elle n'a pas encore atteint la fin)
Est ce que quelqu'un sait comment faire le nombre d'enregistrement qui vont être ajoutés à la taille de la progressbar.
publicstaticvoid main(String args[]){ new test(); } //La classe qui correspond au thread pour faire avancer la barre class ThreadAvanceBarre extendsThread{ JProgressBar barre;
public ThreadAvanceBarre(JProgressBar b){
barre=b; }
// Connexion à la base de données Connection conn = null; try{
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ubixstg", "OPS$BRU","KALIMA"); } catch(SQLException ex1){ }
// Requête SQL //Création d'un objet requête Statement stmt1 = conn1.createStatement(); //Envoyer la requête et récupérer le résulatat ResultSet rset1 = stmt1.executeQuery("select count(*) from fstcrd where dafin is not null");
// Affichage du résultat while(rset1.next()) {
nouvelle = rset1.getString(1); System.out.println("La nouvelle valeur est"+nouvelle); //ce que la table contient pendant le traitement
aInt = Integer.parseInt(nouvelle);
barre.setMaximum(bInt+3);
barre.setMinimum(0); if(aInt != max) {
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.