Bonjour,
J'ai un JProgressBar qui doit se remplir en fonction des opérations effectuées, et non pas selon le temps, comme dans tout les exemples qu'on trouve sur le web.
Voici la classe de ce progressbar
J'appelle donc la méthode startprogressbar(int) pour faire avancer la barre. Cependant, la seconde fois que j'appelle cette méthode, ça ne fait pas avancer mon thread.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 import java.awt.*; import javax.swing.*; public class ProgressBar{ JProgressBar jpbProgressBar; Thread monThread; JFrame fraFrame; int intLimiteProgressBar = 0; public void initcomponents(){ // Création de l'interface fraFrame = new JFrame("En cours de chargement"); JPanel panneau = new JPanel(); JLabel texte = new JLabel("Veuillez patienter pendant le chargement..."); jpbProgressBar = new JProgressBar(0, 100); panneau.add("Center", jpbProgressBar); panneau.add("Center", texte); //Paramètre la fenêtre fraFrame.getContentPane().add(BorderLayout.CENTER, panneau); fraFrame.setSize(275,85); fraFrame.setVisible(true); fraFrame.setResizable(false); fraFrame.setLocationRelativeTo(null); fraFrame.setAlwaysOnTop(false); // Création du thread monThread= new Thread(new Avancer()); }//fin initcomponents public void startprogressbar(int limite){ //Reprend la valeure en paramètre intLimiteProgressBar = limite; //Démarre le thread monThread.start(); }//fin startprogressbar public class Avancer implements Runnable{ public void run(){ jpbProgressBar.setValue(intLimiteProgressBar); }//fin run }//fin avancer }// fin ProgressBar
Je suppose que c'est parce que j'essaie de le relancer une deuxième fois. Je ne l'ai pas arrêté car j'avais lu que on ne pouvais plus utiliser la méthode stop() des thread, et effectivement, ça ne marche pas chez moi.
Mes questions sont donc :
1) Quelle est la fonction pour mettre en pause un thread ?
2) Mon algorithme est-il vraiment correct ? La façon dont j'utilise mon thread, le mettre en pause comme ça ? Les threads sont tout nouveaux pour moi alors peut-être que je me trompe sur leur utilisation.
Merci d'avance à ceux qui prennent le temps de lire et peut-être même de répondre ^^
Partager