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

  1. #1
    Membre à l'essai
    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
    Points : 19
    Points
    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 du Club 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
    Points : 65
    Points
    65
    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 à l'essai
    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
    Points : 19
    Points
    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 actif
    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
    Points : 267
    Points
    267
    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 du Club 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
    Points : 65
    Points
    65
    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 émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    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).

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 102
    Points : 58
    Points
    58
    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!

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 165
    Points : 86
    Points
    86
    Par défaut
    salut,

    je n'ai pas de reponse a ta question, mais je voulais juste savoir quel look and feel tu as utilise???

    merci pour ta reponse
    jerome

  9. #9
    Membre à l'essai
    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
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par jayjay.f
    salut,

    je n'ai pas de reponse a ta question, mais je voulais juste savoir quel look and feel tu as utilise???

    merci pour ta reponse
    jerome
    C'est le look and feel natif de Mac Os X 10.4. Il n'est pas disponible sous les autres plateformes car il est sous copyright Apple.

  10. #10
    Membre à l'essai
    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
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par bslota
    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!
    Merci !

    En plus on ne peux pas cliquer sur les boutons, il faut récupérer les coordonnées du point... pour savoir si on a cliqué sur le bouton... bieurk c'est moche donc je vais essayé de me faire un JPanel maison

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 17/04/2012, 10h08
  2. focus dans une cellule d'une JTable
    Par coil dans le forum Composants
    Réponses: 5
    Dernier message: 07/07/2010, 18h15
  3. Inserer une jProgressBar dans une Jlist
    Par Noosymer dans le forum Composants
    Réponses: 1
    Dernier message: 18/04/2006, 20h56
  4. Réponses: 3
    Dernier message: 01/12/2003, 14h14
  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, 11h18

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