pbm progressMonitor - rien ne s'y affiche - pbm de thread ?
Bonjour a tous, je suis en train de développer une petite appli d'envoi de gros fichiers, tout fonctionne jusqu'a l'affichage de mon progressMonitor... Il s'affiche... mais il n'y a rien du tout dedans !
J'ai lu le tuto sun, mais je ne comprends pas tres bien... Je pense que c'est un probleme de thread mais je ne connai pas du tout comment tout cela fonctionne...
Toutes les actions surviennent apres le clic sur un bouton
mon code :
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
| public void actionPerformed(java.awt.event.ActionEvent e) {
//ouverture d'un JfileChooser
//apres le choix on recupere le nom du fichier
//on se connecte au ftp
//si les mdp et login sont bon
if (ftp.login("xxxxx", "xxxxx"))
{
ProgressMonitor moniteur = new ProgressMonitor(MyFrame.this,"Envoi",path,0,100);
moniteur.setProgress(0);
String command = "stor "+dossier+"/"+param;
//On ouvre le fichier en local
RandomAccessFile infile = new RandomAccessFile(path, "r");
// Converti le RandomAccessFile en un InputStream
FileInputStream fileStream = new FileInputStream(infile.getFD());
if (!ftp.setupDataPasv(command)) return;
OutputStream out = ftp.pasvSocket.getOutputStream();
byte b[] = new byte[4096];
// Stock les donnés dans un fichier
int amount;
long restant = taille;
while ((amount = fileStream.read(b)) > 0)
{
restant = restant - amount;
long pourcentageTmp = restant*100/taille;
int pourcentage = (int)(100-pourcentageTmp);
moniteur.setProgress(pourcentage);
System.out.println(pourcentage);
out.write(b, 0, amount);
}
//on ferme le flux
//on ferme la connexion
}
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
} |