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

AWT/Swing Java Discussion :

InfiniteProgressPanel et courte attente


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut InfiniteProgressPanel et courte attente
    salut,

    j'utilise la tres belle classe de Romain Guy InfiniteProgressPanel pour faire attendre les utilisateurs lorsque les temps de traitement sont long
    http://www.jroller.com/page/gfx/2005...style_in_swing

    mais je rencontre un petit soucis: les actions que je lance peuvent etre tres longues ou tres courtes (je n'ai aucun moyen de savoir par avance).
    Le probleme est que lorsqu'elles sont tres courtes (qq milisecondes) cela plante completement l'appli !

    l'arret de l'animation parait bien applée, le glasspane n'est plus visible , par contre impossible de reprendre la main sur l'interface....

    pour illustrer le probleme je joins le code suivant:
    si le thread dort 1000 ms aucun pb , changez le a 1 ou 0 ms et cela ne fonctionne plus (parfois dès la premiere fois , d'autre fois au 2 ou 3 eme appel)

    si quelqu'un comprend pourquoi Romain peut etre ?

    merci

    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
     
    public class Test extends JFrame implements ActionListener {
     
        protected InfiniteProgressPanel glassPane;
     
        public static void main(String[] args) {
     
            Test test = new Test();
            test.setVisible(true);
        }
     
        public Test() {
            setSize(200,400);
            JButton bt = new JButton("go");
            bt.addActionListener(this);
            getContentPane().add(bt);
            this.glassPane = new InfiniteProgressPanel();
            setGlassPane(glassPane);
        }
     
        public void actionPerformed(ActionEvent e) {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
     
                    glassPane.start();
                    Thread performer = new Thread(new Runnable() {
                        public void run() {
                            loading2();
     
                        }
                    }, "Performer");
                    performer.start();
                }
            });
        }
     
        private void loading2(){
            try {
                Thread.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            glassPane.stop();
            System.out.println("stop");
        }
    }
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Eventuellement récupère les version "à jour" de ce composant qui se trouvent dans le projet SwingFX

  3. #3
    Invité
    Invité(e)
    Par défaut
    je sais que ce composant (effectivement plus à jour dans SwingFX) attrape tout les keylistener et mouseListener.

  4. #4
    Membre éclairé Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Par défaut
    merci Sinok,

    la version du package SwingFX (que je ne connaissais pas ) résout le probleme

    merci @+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut
    j'avais le même soucis, je susi donc ravie de voir qu'il y a une version plus à jour résolvant ce pb...

    j'ai une autre question concernant ce composant, lors du redimensionnement de la fenêtre pendant l'attente, le texte est replacé au centre de la fenêtre mais pas le "cercle" qui lui reste à la position de départ. J'ai fait quelques tests mais ne suis pas arrivée à quelque chose de correct. Est-ce que quelqu'un aurait la solution miracle ?

    merci d'avance, cordialement,

    tatia34

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

Discussions similaires

  1. [TControl] Récupérer le message court et long du hint ?
    Par Cornell dans le forum Composants VCL
    Réponses: 6
    Dernier message: 19/11/2003, 09h55
  2. procédure attente
    Par Mau dans le forum Réseau
    Réponses: 7
    Dernier message: 26/09/2003, 23h23
  3. Délai d'attente expiré
    Par amiral thrawn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/04/2003, 13h04
  4. recupèrer file d'attente d'impression
    Par magic corp. dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2002, 15h12
  5. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 21h08

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