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 :

[JTree] dragNdrop


Sujet :

Composants 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 [JTree] dragNdrop
    salut,

    je suis en train d'implementer du dragNdrop dans un JTree et mon probleme est le suivant:
    Lorsque je drag un element de l'arbre (noeud ou feuille) et que je le balade qu dessus des autres elements de l'arbre, ceux ci restent sur fond blanc. Or je souhaite que l'element 'survolé' change de couleur (en gros comme dans l'explorateur de windows lorsqu'on deplace un objet au dessus d'un noeud)

    J'avais reussi à faire ceci en stipulant dans la methode dragOver(DropTargetDragEvent e)
    que l'element survolé doit etre selectionné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void dragOver(DropTargetDragEvent e) {
    ...
    Point pt = e.getLocation();
    TreePath path = getClosestPathForLocation(pt.x, pt.y);
    MyTree.setSelectionPath(path);
    ...
    }
    le problème c'est que j'ai un écouteur sur cet arbre qui declanche plusieurs operations lorsqu'un element est effectivement selectionné.
    or le fait d'utiliser setSelectionPath(path) declanche le listener et je ne le souhaite pas.

    Y a t'il donc un autre moyen pour changer l'aspect de l'element survolé ?

    merci pour votre aide

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    bonsoir,

    tu peux tenter de jouer avec la méthode getTreeCellRendererComponent de DefaultTreeCellRenderer et avec un flag pour savoir que tu es en train d'afficher le noeud survolé... A partir de là, tu customises le DefaultTreeCellRenderer comme tu veux.

  3. #3
    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
    j'ai rajouté un flag, que je modifie a la volée et j'ai customisé mon renderer pour qu'il affiche les noeuds survolés d'une facon differente cependant le rafraichissement ne se fait pas.

    une fois le drop fini , si je reselectionne un noeud survolé il change effectivement d'aspect mais il n'y a pas de changement durant le drag...
    et ce malgres l'appel de la methode repaint()

    comment je peux forcer le renderer à s'actualiser ?

  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
    Bon j'ai resolu mon probleme en contournant +/- la difficulté:
    c'est à dire que lorsque j'initie le drag je desactive ce qui est fait par le listener dans valueChanged() et je reactive le tout a la fin du drag

    et j'utilise donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyTree.setSelectionPath(path)
    pour selectionner le noeud survolé

    si quelqu'un à une autre solution je suis quand même preneur par simple curiosité

    merci @+

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

Discussions similaires

  1. [JTree] rafraichissement
    Par nurn dans le forum Composants
    Réponses: 12
    Dernier message: 29/07/2005, 14h41
  2. [JTree]noeud parent dans un jtree
    Par wassimb dans le forum Composants
    Réponses: 5
    Dernier message: 22/03/2004, 14h06
  3. [JTree]problème de rafraichissement
    Par peppena dans le forum Composants
    Réponses: 9
    Dernier message: 20/01/2004, 14h06
  4. [JTree]redimensionnement d'un noeud
    Par grishka dans le forum Composants
    Réponses: 4
    Dernier message: 10/04/2003, 14h33
  5. [JTree] Ouvrir/Fermer l'ensemble des noeuds
    Par Math_Caen dans le forum Composants
    Réponses: 3
    Dernier message: 07/04/2003, 14h01

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