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 :

[Conception] JProgressBar et actions


Sujet :

AWT/Swing Java

  1. #1
    Invité
    Invité(e)
    Par défaut [Conception] JProgressBar et actions
    Bonjour,

    J'ai une application qui peux effectuer des traitements plus ou moins long depuis une AsbtractAction. Cette action lance un Thread pour exécuter le traitement mais je voudrais également afficher une barre de progression..

    J'ai bien la possibilité de faire ceci :
    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
     
    // MonApplication possède les méthodes progressStart() et progressStop() 
    // qui se chargent respectivement de faire un setIndeterminate(true) et false  
    // sur une JProgressBar
     
     
    public class MonAction extends AbstractAction {
     
      public void actionPerformed(ActionEvent e) {
        Performer performer = new Performer();
        performer.start();
      }
     
      private class Performer extends Thread {
        public void run() {
          MonApplication.getInstance().progressStart();
          // Calcule le nombre de poils dans la barbe du capitaine (très long à faire)
          MonApplication.getInstance().progressStop();
        }
      }
     
    }
    Mais je ne trouve pas cela propre du tout. Je voudrais séparer au maximum le traitement et la gestion de la JProgressBar.

    Avez-vous une piste pour faire cela proprement ?

    Merci

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Qu'y-a-t-il de gênant, tant que le calcul du nombre de poils de la barbe du capitaine est séparé dans un autre objet, indépendant de ton interface ?

  3. #3
    Membre averti Avatar de xixi31
    Inscrit en
    Juin 2005
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2005
    Messages : 423
    Points : 414
    Points
    414
    Par défaut
    Si tu es en Java 1.6, tu pourrais utiliser la classe SwingWorker
    auteur de Awl (http://awl-wizard.sourceforge.net), librairie de développement d'assistant en Java.
    auteur de Blackdog (http://www.blackdog-project.org), lecteur/gestionnaire audio en Java.

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par xixi31 Voir le message
    Si tu es en Java 1.6, tu pourrais utiliser la classe SwingWorker
    Sinon tu peux utiliser la classe SwingWorker téléchargeable pour les autres versions de java.

    Il y a de plus un tutorial sur developpez.com dont le lien a souvent été donné sur le forum.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci pour SwingWorker j'en étais encore à SwingUtilitities.***

    Mon problème n'est pas L'exécution correcte du Thread mais le fait d'utiliser un singleton pour ce genre de choses...
    Ha j'ai peut-être une idée..

    Je vois les choses comme ceci :
    - Une interface 'Process'
    - Une interface 'ProcessListener'
    - Une classe 'Action' (AsbtractAction)
    - Une classe 'Application' qui réalise 'ProcessListener'
    - Une classe 'Performer' qui réalise 'Process'

    'Action' possède une référence sur 'Application' et une instance de 'Performer', lorsqu'elle est exécutée elle enregistre 'Performer' sur 'Application', exécute 'Performer' et une fois terminé désabonne 'Performer'..
    Il y à bien sur plusieurs variantes et surement quelques problèmes ou améliorations mais l'idée me plait bien..

    Bon, je vais lire le tutoriel sur SwingWorker et je tente..

  6. #6
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par Blaise1 Voir le message
    Je vois les choses comme ceci :
    - Une interface 'Process'
    - Une interface 'ProcessListener'
    - Une classe 'Action' (AsbtractAction)
    - Une classe 'Application' qui réalise 'ProcessListener'
    - Une classe 'Performer' qui réalise 'Process'
    T'embête pas, tout peut être fait dans le SwingWorker. C'est prévu pour.
    Comment ça ? La réponse à ton problème n'est ni dans la faq, ni dans les tutos, ni dans sources ??? Etonnant...
    De la bonne manière de poser une question (et de répondre).
    Je ne fais pas de service par MP. Merci (...de lire les règles...).
    Ma page dvp.com

  7. #7
    Invité
    Invité(e)
    Par défaut
    Oui, j'ai vu. J'ai rédigé mon post puis lu le tutoriel, je revenais pour faire un ajouter un 'Edit : He ben SwingWorker fais ça'.

    Merci

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2014, 19h25
  2. Réponses: 0
    Dernier message: 11/06/2014, 19h25
  3. [struts 1.3] Implémentation, conception des actions
    Par valkeke dans le forum Struts 1
    Réponses: 3
    Dernier message: 31/10/2010, 09h28
  4. [Conception] Tester quel bouton a effectué l'action
    Par Cyborg289 dans le forum Général Java
    Réponses: 6
    Dernier message: 07/07/2005, 23h50
  5. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16

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