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 :

[JTabel + Jscrollpane]Se placer sur la ligne sélectionnée


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut [JTabel + Jscrollpane]Se placer sur la ligne sélectionnée
    Bonjour,

    Je vais essayer de faire au plus simple pour rester compréhensible

    J'ai un projet constitué d'un JTable dans un JScrollPane, et d'une interface de type cartographie. Chaque objet situé dans la partie cartographique a son entrée dans la JTable. Lorsque l'utilisateur clique sur un de ces objets, sa ligne correspondante dans la JTable est automatiquement sélectionnée.
    Le problème est que si sa ligne n'est pas visible à cause du JScrollPane (si par exemple l'ascenseur est en position haute et que la ligne sélectionnée est la dernière du Jtable) l'ascenseur ne se repositionne pas au niveau de la bonne ligne. J'aimerais donc savoir comment puis-je arranger ça?

    J'ai regardé du coté du JTable mais je pense plus que le problème se situe du coté du JScrollPane...

    J'espère avoir était assez clair (sinon je vous ferais un petit schéma)

    Merci beaucoup à ceux qui s'attarderont sur mon problème.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu peux utiliser la méthode scrollRectToVisible(), hérité de JComponent, qui permet de faire scroller le JScrollPane parent afin de rendre visible la zone concerné.

    Il ne reste plus qu'à récupérer le rectangle correspondant à la ligne/cellule via getCellRect().

    Bref ca donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	int row = // le numero de ta ligne
    	table.scrollRectToVisible( table.getCellRect(row, 0, true) );
    a++

  3. #3
    Membre émérite Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Par défaut
    voici une solution, c'est peut être pas la meilleure mais bon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int row = jTable1.getSelectedRow();
    int rowHeight = jTable1.getRowHeight();
    Point p = new Point(jTable1.getX(), jTable1.getY() + row*rowHeight);
    jScrollPane1.getViewport().setViewPosition(p);

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 287
    Par défaut
    Merci à vous deux, vous êtes des as
    Je reste sur la solution d'adiGuba qui fonctionne parfaitement

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

Discussions similaires

  1. [JScrollPane] [JTable] Se placer à la dernière ligne
    Par wishnight dans le forum Composants
    Réponses: 9
    Dernier message: 24/12/2015, 19h42
  2. [MVVM] Datagrid Focus sur une ligne sélectionnée
    Par draco951 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 17/06/2013, 11h36
  3. Réponses: 8
    Dernier message: 27/07/2009, 17h38
  4. GROUP BY, critère sur la ligne sélectionnée
    Par jeremya dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/04/2006, 17h13
  5. Réponses: 1
    Dernier message: 10/05/2005, 15h14

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