[JAVA] Progress bar pour un téléchargement
Résolu
Knux14
-
Knux14 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Knux14 Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche quelqu'un qui pourrait m'expliquer comment ajouter une barre de progression au téléchargement de fichier dans mon logiciel. Le problème est que le logiciel attend que le téléchargement soit fini pour continuer donc je ne peut pas changer comme cela. Si quelqu'un aurait du temps à m'accorder, voici les sources du logiciel https://dl.dropbox.com/u/7560728/mvd/src.zip. J'ai cherché sur google, mais aucun n'explique correctement :s Le logiciel est fait grâce à Matisse (Netbeans)
Merci d'avance.
Je cherche quelqu'un qui pourrait m'expliquer comment ajouter une barre de progression au téléchargement de fichier dans mon logiciel. Le problème est que le logiciel attend que le téléchargement soit fini pour continuer donc je ne peut pas changer comme cela. Si quelqu'un aurait du temps à m'accorder, voici les sources du logiciel https://dl.dropbox.com/u/7560728/mvd/src.zip. J'ai cherché sur google, mais aucun n'explique correctement :s Le logiciel est fait grâce à Matisse (Netbeans)
Merci d'avance.
A voir également:
- [JAVA] Progress bar pour un téléchargement
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Telechargement direct - Accueil - Outils
- Telecharger downloader pour pc - Télécharger - Téléchargement & Transfert
- Eclipse java - Télécharger - Langages
1 réponse
Pour la documentation voir : How to Use Progress Bars
En supposant que ta méthode Download.dl était correct, en voici une modification possible, le composant JProgressBar devant bien sûr être préalablement initialisé et ajouté quelque part dans ton interface graphique :
En supposant que ta méthode Download.dl était correct, en voici une modification possible, le composant JProgressBar devant bien sûr être préalablement initialisé et ajouté quelque part dans ton interface graphique :
public static void dl(String adresse, File dest, final JProgressBar bar) { FileOutputStream fos = null; BufferedReader reader = null; bar.setValue(0); bar.setIndeterminate(false); try { // Création de la connexion URL url = new URL(adresse); URLConnection conn = url.openConnection(); System.out.println(adresse); String FileType = conn.getContentType(); System.out.println("FileType : " + FileType); int fileLength = conn.getContentLength(); if (fileLength == -1) throw new IOException("Fichier non valide."); else bar.setMaximum(fileLength); // Lecture de la réponse InputStream in = conn.getInputStream(); reader= new BufferedReader(new InputStreamReader(in)); if (dest == null) { String fileName = url.getFile(); fileName = fileName.substring(fileName.lastIndexOf('/') + 1); dest = new File(fileName); } fos = new FileOutputStream(dest); byte[] buff = new byte[1024]; int n; while ((n=in.read(buff)) !=-1) { fos.write(buff, 0, n); bar.setValue(bar.getValue()+n); } } catch (Exception e) { e.printStackTrace(); } finally { try { fos.flush(); fos.close(); } catch (IOException e) { e.printStackTrace(); } try { reader.close(); } catch (Exception e) { e.printStackTrace(); } } }
J'ai essayé de faire un thread, sa reviens au même que sans...
Quand je lance le téléchargement, cela "bloque" tout le programme pour télécharger, rien d'autre ne se passe. une fois fini tout est de nouveau fonctionnel, et la progressbar s'est remplie :s
EDIT: J'ai déjà regardé la doc mais j'ai rien compris :s
Pour le thread c'est une tout autre affaire, mais en le plaçant correctement ça devrait aller, par contre il te faudra autant de barre de progression que de threads conccurents ce qui est un peu plus compliqué à gérer...
Exemple :