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

SWT/JFace Java Discussion :

Attendre la fin du chargement d'un Browser


Sujet :

SWT/JFace Java

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Par défaut Attendre la fin du chargement d'un Browser
    Bonjour,

    J'ai un petit problème avec mon programme en effet, j'effectue des actions dans le Browser seulement ce dernier subit une modification (il charge sa nouvelle url) avant que je fasse mes actions.

    Je me suis rendu que mes actions s'effectuaient sur l'ancienne url de mon browser.

    Du coup, je voudrais que mon programme attende la fin du chargement de mon browser avant de continuer. Comment faire?

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Tu peux ajouter un ProgressListener à ton Browser qui t'indiquera quand ton Browser sera en train de charger un URL et quand il aura fini. Il te suffit ensuite d'activer tes actions seulement si le Browser a fini de charger l'URL.

    Voilà, à+
    Gueritarish

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Par défaut
    Un truc comme ça, ça devrait fonctionner ?

    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
    ProgressListener tocProgressListener = new ProgressListener() {
          public void changed(ProgressEvent event) {
             }
          public void completed(ProgressEvent event) {
                Browser browser = (Browser)event.widget;
                index++;
                boolean tocCompleted = index >= titles.length;
                if (tocCompleted) {
                browser.dispose();
                   ...
                   return;
                }
                shell.setText("Building index "+index+"/"+urls.length);
             browser.setUrl(urls[index]);
             }
          };
    Je vais tester ça et je reviens.

    Merci pour ta réponse.

    Edit : le code n'est pas bon.

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Par défaut
    Pour ceux qui ont le même problème que moi, je vous invite à regarder le lien suivant qui propose d'ajouter des listener pour les browser:

    http://www.java2s.com/Code/JavaAPI/o...ssListener.htm

  5. #5
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Attends, pourquoi tu fais un dispose sur ton Browser??
    Le truc qu'il te faut faire c'est un ProgressListener basique qui contient un "lock" pour tes actions. En gros, tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ProgressListener tocProgressListener = new ProgressListener() {
          public void changed(final ProgressEvent event) {
                loading = true;
          }
     
          public void completed(final ProgressEvent event) {
                loading = false;
          }
    };
    Ensuite, dans tes actions, quelles qu'elle soient, tu testes si ton le flag loading est à false pour pouvoir les exécuter. Sinon, tu boucles tant jusqu'à ce qu'il passe à false.

    Voilà, à+
    Gueritarish

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 137
    Par défaut
    Ca marche nickel, merci beaucoup et continue à faire le bonheur des petits noobs de Java .

    Je mets en résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Process] comment attendre la fin du chargement?
    Par elflamby dans le forum VB.NET
    Réponses: 1
    Dernier message: 03/04/2007, 15h04
  2. [FLASH MX2004] [AS2] Attendre la fin de chargement d'un fichier avant de continuer.
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 01/03/2007, 15h13
  3. Attendre la fin du chargement d'un clip
    Par arnaud_verlaine dans le forum Flash
    Réponses: 5
    Dernier message: 13/09/2006, 11h39
  4. attendre la fin de chargement d'une page avant de continuer le script
    Par jibouze dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2006, 09h50
  5. Attendre la fin du chargement de la page dans un WebBrowser
    Par core1 dans le forum Web & réseau
    Réponses: 5
    Dernier message: 15/06/2003, 04h12

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