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

Composants Java Discussion :

JProgressBar dans une cellule de JList


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut JProgressBar dans une cellule de JList
    Bonsoir à tous !

    J'ai dans mon logiciel une JList.

    Cette JList contient une ListCellRenderer avec du texte, un bouton et une barre de progression.

    Le problème est que les barres de progressions ne sont jamais animées.

    Pourtant une barre de progression dans un autre panel, en dehors de la liste, fonctionne normalement.

    Voici un aperçu :

    En rouge les barres de progression inanimées, en noire celle qui fonctionne.



    Auriez-vous une solution ?

  2. #2
    Membre éclairé Avatar de puybaret
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 61
    Par défaut
    Le composant d'un ListCellRenderer n'est redessiné que si tu changes un élément de la liste ou si tu redessines cette liste.
    Je pense que tu devrais provoquer un repaint de ta liste à intervalle régulier avec un timer par exemple.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 19
    Par défaut
    Merci pour la réponse
    Mais du point de vue thread, edt, tout ça, c'est pas très beau un timer, car c'est l'edt qui rafraichi tout seul non ?

    Y aurait il une solution sans timer ?

    Si il n'y a pas d'autre solution, j'utiliserai cette solution.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2006
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 238
    Par défaut
    Salut,

    utilise la classe Timer de swing, tu lui passe le temps d'attente entre chaque action et l'action à faire lorsque l'attente est terminée.

    a+

  5. #5
    Membre éclairé Avatar de puybaret
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 61
    Par défaut
    Citation Envoyé par psicot
    Merci pour la réponse
    Mais du point de vue thread, edt, tout ça, c'est pas très beau un timer, car c'est l'edt qui rafraichi tout seul non ?
    Non pas de problème, on peut toujours appeler repaint à partir de n'importe quel thread sans risque. De toute façon les actions d'un javax.swing.Timer s'exécutent dans l'EDT.
    Voir http://gfx.developpez.com/tutoriel/j...ing-threading/

    Citation Envoyé par psicot
    Y aurait il une solution sans timer ?
    Vu le fonctionnement des renderers, ça m'étonnerait qu'il existe beaucoup de solutions. Regardez éventuellement le code source des sous-classes de ProgressBarUI pour voir comment fonctionnent leur animation.
    Est-ce que déjà, la solution avec timer marche ?

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Tu ferais mieux d'utiliser un JPanel en GridLayout, car les boutons non plus ne fonctionnent pas dans une JList.

    La JList permet de donner des options de sélection intéressantes, mais pour afficher des composants en colonne, elle peut avoir certains inconvénients (composants passifs).
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 102
    Par défaut
    En effet, utiliser une JList n'est pas du tout une bonne idée là!!

    Vaut mieux un JPanel avec un GridLayout ou un BoxLayout Vertical!!
    Là, tu n'auras pas besoin de faire un Timer pas top!

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/04/2012, 09h08
  2. focus dans une cellule d'une JTable
    Par coil dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2010, 17h15
  3. Inserer une jProgressBar dans une Jlist
    Par Noosymer dans le forum Composants
    Réponses: 1
    Dernier message: 18/04/2006, 19h56
  4. Réponses: 3
    Dernier message: 01/12/2003, 13h14
  5. [VBA-E] Fonction sum() dans une cellule
    Par Gonzo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2002, 10h18

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