[JAVA] Progress bar pour un téléchargement
Résolu/Fermé
Knux14
-
30 juil. 2012 à 16:54
Knux14 Messages postés 16 Date d'inscription lundi 30 juillet 2012 Statut Membre Dernière intervention 1 janvier 2014 - 30 juil. 2012 à 21:41
Knux14 Messages postés 16 Date d'inscription lundi 30 juillet 2012 Statut Membre Dernière intervention 1 janvier 2014 - 30 juil. 2012 à 21:41
A voir également:
- [JAVA] Progress bar pour un téléchargement
- Zone telechargement - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Telecharger whatsapp pour pc - Télécharger - Messagerie
- Java apk - Télécharger - Langages
- Jeux java itel football - Télécharger - Jeux vidéo
1 réponse
KX
Messages postés
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
30 juil. 2012 à 17:21
30 juil. 2012 à 17:21
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(); } } }
Modifié par Knux14 le 30/07/2012 à 21:14
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
30 juil. 2012 à 21:32
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 :
30 juil. 2012 à 21:41