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

Agents de placement/Fenêtres Java Discussion :

Rafraichir le contenu d'une fenêtre avant la fin d'un actionPerformed


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 113
    Points : 65
    Points
    65
    Par défaut Rafraichir le contenu d'une fenêtre avant la fin d'un actionPerformed
    Bonjour à tous,

    Je rencontre actuellement un problème sur l'interface graphique de ma petite application.
    Voila j'ai une fenêtre JFrame avec quelques composants, radio, JLabel, JButton... vraiment basic. Dans cette fenêtre j'affiche une image gif animée du style traitement en court, et que je met a .setVisible(false) pour ne pas l'afficher à l'ouverture.

    Ensuite, j'ai le code suivant pour gérer l'action de mon bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public void actionPerformed(ActionEvent evt) {
     
    // recuperation de la source de l'action
    Object source = evt.getSource();
     
       // si la source est le boutton d'export
       if (source == export) {
         monGif.setVisible(true);
         monTraitement();
       }
    }
    Or mon traitement dure 1 à 2 min, et je ne vois pas mon gif s'afficher directement aprés le clique sur le bouton.
    Je pense que cela est du au fait que l'ihm soit rafraichie uniquement lorsque le actionPerformed rend la main (je me trompe?).

    Comment puis-je forcer l'affichage de mon gif ou rafraichir la fenêtre avant que le actionPerformed me rende la main?

    J'ai essayé avec this.repaint(); mongif.repaint(); ... juste aprés le .setVisible(true); mais rien ne marche, le gif n'apparait qu'a la fin. Je ne trouve pas le moyen.

    Pourriez-vous m'indiquer la solution à mon pb?

    Merci beaucoup.

    Cordialement,

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    J'ai eu un problème similaire, le gif en moins. Pour le résoudre, j'ai utilisé la méthode validate() sur la JFrame.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 113
    Points : 65
    Points
    65
    Par défaut
    Bonsoir,

    Merci pour ta réponse.
    J'avais cru voir cela sur le net aussi. J'ai fais un this.validate(); juste aprés le monGif.setVisible(true); mais cela ne change rien
    j'ai également essayé monGif.validate(); et nada.

    Une autre idée?

    Merci

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 19
    Points : 8
    Points
    8
    Par défaut
    Je ne comprend pas ...

    Tu es sur que "this" désigne bien la JFrame ? Car c'est sur elle que le validate a fonctionné dans mon cas.

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 113
    Points : 65
    Points
    65
    Par défaut
    humm moi non plus je ne comprend pas. Oui je pense qu'il s'agit bien de ma JFrame.

    Voici ma classe: public class Importfilewindow extends JFrame implements ActionListener ...

    Dans ma classe j'ai la méthode public void actionPerformed(ActionEvent evt)...

    Le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if (source == export) {
     
    	logArea.setText("");
    	Utility.run("Start export", logArea);
                 anim.setVisible(true); // mon gif
                 this.validate();
                 this.getTC(exportFormat, idtctp.getText(), Constante.URNMODE); // Mon traitement qui dure 1/2 min
     
    }

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 113
    Points : 65
    Points
    65
    Par défaut
    Bon, j'ai finalement résolut mon pb en passant par un thread, je pense que le actionPerformed "bloqué" l'affichage, et dans mon cas le validate() ne fonctionné pas. Maintenant je vois bien mon gif s'animer durant le traitmement.

    Merci à toi DR0GV3

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

Discussions similaires

  1. Rafraichir le contenu d'une fenêtre au focus
    Par jpclabaux dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 15/06/2010, 16h18
  2. [C#] Imprimer le contenu d'une fenêtre avec ascenseur
    Par biglong dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/08/2007, 23h29
  3. Réponses: 6
    Dernier message: 02/06/2006, 11h44
  4. [WD9] Changer le contenu d'une fenêtre interne
    Par oz80 dans le forum WinDev
    Réponses: 2
    Dernier message: 15/12/2005, 15h02
  5. Enregistrer Contenu d'une fenêtre enfant.
    Par yaku dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/12/2004, 18h40

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