IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Applets Java Discussion :

Rafraîchissement d'une barre de progression


Sujet :

Applets Java

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Rafraîchissement d'une barre de progression
    Bonjour, je suis en train de réaliser un petit applet d'upload de fichiers. Oui, je sais il en existe déjà des centaines, mais c'est en codant qu'on apprend.

    Comme les fichiers peuvent être de grande taille, j'ai plaçé une barre de progression pour voir l'avancement de l'upload. Cette barre affiche bien 100% en fin d'upload ou n% quand je kicke l'applet du serveur ftp, seulement elle n'arrive pas à se rafraîchir. J'ai essayé avec des threads, avec des méthodes de la classe SwingUtilities, mais là je suis impuissant devant ce problème.

    Si un gourou du java peut m'aider... Je laisse le code en pièce jointe.

    Je vous remercie.

    PS : Je prévois de faire un bouton 'uploader' au leiu d'uploader directement le fichier suite au choix dans le JFileChooser.
    Fichiers attachés Fichiers attachés

  2. #2
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Désolé de remonter le post, mais je suis vraiment bloqué.

    Avant de vous énerver, je tiens à vous dire que j'ai étudié la FAQ, lu le forum, concernant les threads et la gestion de rafraîchissement sous Swing, mais je n'ai pas réussi à trouver de solution donc si quelqu'un peut m'aider, ce serait super. Merci.

    Voici le morceau de code en question :
    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
     
      	private void copyFile() {  // fonction qui copie le fichier sur le serveur
     
        		Thread trd = new Thread() { 
     
          			FTPConnection connection = new FTPConnection(); 
     
          			public void run() { 
     
            			try { 
     
              				if (connection.connect("127.0.0.1")) { 
     
                					if (connection.login("toto", "toto")) { 
                  						connection.uploadFile(selected_file.getName(), addSlashes(selected_file.getPath())); 
    // Upload du fichier qui dure un certain temps
                  						try { 
                    						Thread.sleep(500); // Pause du thread
                  						} 
                  						catch (InterruptedException e) { 
                  						} 
                					} 
              				} 
              			connection.disconnect(); 
            			} 
            			catch(UnknownHostException e) { 
            			}  
            			catch(IOException e) { 
            			} 
          			} 
        		}; 
        		trd.start(); 
     
        		while(trd.isAlive()) {	// Quand il upload, je vérifie la taille du fichier sur le serveur. Cette fonction fonctionne correctement à intervalle régulier.
              FTPConnection connection2 = new FTPConnection(); 
     
              try { 
     
                if (connection2.connect("127.0.0.1")) { 
     
                  if (connection2.login("toto2", "toto2")) { 
                    loaded = (int)(connection2.getFileSize(selected_file.getName())*100/selected_file.length()); 
     // Update de la barre de progression, qui ne marche pas !!!
                    Runnable updateBar = new Runnable() { 
     
                      public void run() { 
                        bar.setString("Progression " + loaded + "%");  
                        bar.setStringPainted(true); 
                        bar.setValue(loaded); 
                        cp.validate(); 
                      } 
                    }; 
                    SwingUtilities.invokeLater(updateBar); // Que faire?
                  } 
            		} 
                connection2.disconnect(); 
              } 
              catch(UnknownHostException e) { 
              }  
              catch(IOException e) { 
              } 
            } 
      	}
    La deuxième connexion est bien effectuée pendant l'upload du fichier afin de vérifier la taille de celui-ci sur le serveur ftp, malheureusement la barre de progression n'est pas mise à jour. En revanche elle affiche bien 100% à la fin ou n% quand je kicke l'utilisateur du serveur ftp.

    J'espère que vous pourrez m'aider, merci.

Discussions similaires

  1. [FLASH 8] Créer une barre de progression d'un flv
    Par matt89 dans le forum Intégration
    Réponses: 2
    Dernier message: 20/04/2006, 17h40
  2. [VBA-A]paramétrer une barre de progression sur une requête
    Par jeronimo dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/02/2006, 20h38
  3. Créer une barre de progression sous Vba ??
    Par Deejoh dans le forum Général VBA
    Réponses: 7
    Dernier message: 17/10/2005, 15h05
  4. [C#]Affichage d'une barre de progression
    Par boleduch dans le forum ASP.NET
    Réponses: 9
    Dernier message: 27/08/2005, 17h12
  5. Indy FTP (idFTP) faire une barre de progress de transfert
    Par Harry dans le forum Web & réseau
    Réponses: 4
    Dernier message: 09/07/2004, 13h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo