Bonjour à tous,
J'ai créé un programme qui fait quelques traitements d'images et j'ai besoin d'utiliser une JProgressBar.
Voici une partie du programme, regardez bien les trois lignes en rouge :

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public void CreeDescripteur(String filepath)
	
	{
		int pr=0;
		
		try{
	         
            BufferedReader buff1 = new BufferedReader(new FileReader(filepath));
            
            
            try {
            	
            	 String li;
            	while ((li = buff1.readLine()) != null) 
            	        pr++;
            		
            		
            }
            
            finally {

                buff1.close();
                }
		}
		
		catch (IOException ioe) {
            
            System.out.println("Erreur --" + ioe.toString());
            }
		
	// la variable pr contient le nombre d'images à traiter	


		
            try
            
            {
            	BufferedReader buff2 = new BufferedReader(new FileReader(filepath));
            
              try {
            
            String line; 
            int j=0;
            BareProgress bp=new BareProgress(pr);
            while ((line = buff2.readLine()) != null) {

            try {
                j++;
                img=(ImageIO.read(new File(line)));
                
            } catch (IOException ioe) {
            }
		
		
            Traitement();

            bp.majProgress((j*100)/pr);

            }
            }
            
            finally {

                buff2.close();
                }
                } catch (IOException ioe) {
                 
                System.out.println("Erreur --" + ioe.toString());
                }

        
	
	
	
	}
Voici la classe qui crée la bare de progression :

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
44
45
46
 
   import java.awt.*;
   import java.awt.event.*;
 
   import javax.swing.*;
   import javax.swing.border.*;
   import java.io.*;
 
 
   public class BareProgress extends JFrame
 
  {
 
  public JProgressBar jpb = new JProgressBar(); 
  private JTextField jtfFrom = new JTextField();
  private JLabel jl=new JLabel();
 
  public BareProgress(int max) {
    JPanel jPanel2 = new JPanel();
    jPanel2.setLayout(new BorderLayout());
    jPanel2.setBorder(new TitledBorder("From"));
    jPanel2.add(jtfFrom, BorderLayout.CENTER);
    this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
 
    JPanel jPanel1 = new JPanel();
    jPanel1.setLayout(new GridLayout(2, 1));
    jPanel1.add(jPanel2);
 
    this.add(jpb, BorderLayout.NORTH);
    this.add(jPanel1, BorderLayout.CENTER);
 
    jpb.setStringPainted(true); // Paint the percent in a string
    jpb.setMinimum(0);
    jpb.setMaximum(max);
 
    setTitle("CopyFile");
    setSize(300, 180);
    setVisible(true);
 
  }
	public void majProgress (int val)
	{		jpb.setValue (val);
 
	}
 
  }
Le problème est que je ne vois pas le changement dans la barre de progression dans le cas ou on passe d'un traitement à un autre.
Merci pour votre aide.