Problème dans ma JProgressBar
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:
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:
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.