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 :

Positionner un noeud dans le JScrollPane


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Par défaut Positionner un noeud dans le JScrollPane
    Bonjour à tous.


    Voici la situation :

    Je développe actuellement un programme permettant de comparer deux arbres. Je me retrouve donc avec deux arbres, placés côte à côte.
    Parmi les outils que j'implémente pour la comparaison, il y en a un qui me permet de conserver les deux arbres, à tout moment, au même niveau (quand c'est possible) dans leurs ScrollPane respectifs. (Donc si le noeud affiché dans le coin supérieur gauche de mon ScrollPane1, et qu'il est présent dans mon deuxième arbre, il doit s'afficher dans le coin supérieur gauche de mon ScrollPane2.

    Pour le moment, j'arrive à récupérer le noeud affiché dans le coin de mon ScrollPane1 (en utilisant la fonctione JTree.getClosestPathForLocation(X,Y), avec X et Y fournis par le ViewPort de mon JScrollPane. )
    Par contre, pour le setter au niveau de mon deuxième ScrollPane, pas moyen... J'arrive le sélectionner de l'autre côté, mais l'ascenseur ne le place pas spécialement en haut à gauche (donc il s'affiche dans la zone, mais pas spécialement au même niveau...).

    Si l'un de vous à une idée, une piste, ou un début d'idée, je suis preneur


    Bonne journée.

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Par défaut
    Bon voila, je viens de trouver la solution, pour ceux que ça intéresse


    La fonction getBounds(TreePath) du JTree permet de récupérer le rectangle dans lequel est affiché le noeud désigné par le TreePath. Récupérer les valeurs X et Y (surtout Y dans ce cas) de ce rectangle permet de connaitre la position en hauteur du noeud dans le ScrollPane.
    Il suffit alors de faire un petit JScrollPane.getVerticalBar().setValue(int) du ScrollPane du JTree avec la veleur Y récupérée pour position la ScrollBar vertical à l'emplacement voulu, ce qui fait "scroller" l'ascenseur, positionnant le noeud au sommet de la vue...


    Merci à moi

  3. #3
    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
    Tu peux même faire un peu plus rapide avec la méthode scrollRectToVisible du JScrollPane au lieu d'aller chercher à bouger la JScrollBar.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 47
    Par défaut
    Je ne suis pas sur que ça fonctionne dans mon cas, étant donné que dans une bonne partie des cas, le rectangle en question est déjà visible, il n'est juste pas placé au bon endroit.

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

Discussions similaires

  1. Positionnement automatique des noeuds dans un graphe
    Par Zoook dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 11/12/2008, 14h25
  2. Problème de positionnement de JScrollBar dans une JScrollPane
    Par Gandalf2008 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 02/06/2008, 15h10
  3. Réponses: 1
    Dernier message: 06/03/2007, 13h46
  4. Pbs pour Glisser-Deplacer des noeuds dans un TreeView.
    Par psau dans le forum C++Builder
    Réponses: 3
    Dernier message: 08/09/2004, 21h02
  5. Insertion d'un noeud dans une liste chaînée
    Par habib106 dans le forum Assembleur
    Réponses: 8
    Dernier message: 07/04/2004, 22h34

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