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 :

Double JTable séléction


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut Double JTable séléction
    Bonjour,

    Je disope d'une frame contenant 2 JTables avec leur JScrollPane correspondant.

    J'ai fait en sorte que lorsque je clique sur une des lignes du premier tableau, une ligne du second tableau soit séléctionné.
    Lorsque les jtables sont assez important, une scrollbar apparait.

    Mon souci est le suivant,

    Si je sélectionne la dernière ligne du premier tableau par exemple, dans le second tableau, la dernière ligne est aussi sélectionnée mais la scrollbar ne descend pas automatiquement.

    Comment puis-je faire pour qu'elle descende automatiquement?(un Listener peut-être?).


    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        public static void scrollToVisible(JTable table, int rowIndex, int vColIndex) {
            if (!(table.getParent() instanceof JViewport)) {
                return;
            }
            JViewport viewport = (JViewport) table.getParent();
     
            // This rectangle is relative to the table where the
            // northwest corner of cell (0,0) is always (0,0).
            Rectangle rect = table.getCellRect(rowIndex, vColIndex, true);
     
            // The location of the viewport relative to the table
            Point pt = viewport.getViewPosition();
     
            // Translate the cell location so that it is relative
            // to the view, assuming the northwest corner of the
            // view is (0,0)
            rect.setLocation(rect.x - pt.x, rect.y - pt.y);
     
            // Scroll the area into view
            viewport.scrollRectToVisible(rect);
        }

  3. #3
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Ok merci beaucoup, que demander de plus?

    Ah si

    Comment faire pour que lorsque je clique avec le bouton doirt sur une JTable, la ligne soit sélectionnée comme avec le bouton gauche.

    Merci.

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Avant tout, quand tu as un problème, il faut se poser les bonnes questions.
    Dans ton cas tu souhaites sélectionner la ligne par clic droit donc celà implique :
    1. un événement de clic souris dans la JTable
    2. la position du clic
    3. le type de clic (clic-droit)
    4. savoir forcer la sélection de la ligne cliquée

    Donc :
    1. il va te falloir un MouseListener sur ta table pour capturer les évènements de souris, dans ton cas ça sera le #mousePressed(MouseEvent)
    2. ce n'est pas un problème car la javadoc de JTable t'apprend la présence de la méthode #rowAtPoint(Point)
    3. la javadoc de MouseEvent (l'évènement traité par le MouseListener) t'apprend la présence de la méthode #isPopupTrigger() indiquant si c'est un clic-droit (pour windows et nunux) ou le bouton d'affichage du menu contextuel (ou un truc comme ça, pour mac).
    4. table.getSelectionModel().setSelectionInterval(row, row);

    Essaie de te débrouiller avec ça (il y a plus qu'assez ).

  5. #5
    Membre éclairé Avatar de nicotine002
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 577
    Par défaut
    Ok merci beaucoup, ca fonctionne nickel.

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

Discussions similaires

  1. double JTable et model
    Par matthew974 dans le forum Composants
    Réponses: 0
    Dernier message: 06/05/2009, 14h31
  2. JTable séléction de celluleS
    Par Lady dans le forum Composants
    Réponses: 2
    Dernier message: 13/11/2007, 15h41
  3. Evenement double clique sur jTable
    Par oOoOuuhmAn dans le forum Composants
    Réponses: 20
    Dernier message: 08/03/2006, 12h05
  4. [SWING] remplir une jtable avec une matrice de double
    Par Psykorel dans le forum Composants
    Réponses: 3
    Dernier message: 04/01/2006, 14h14
  5. [JTable] gérer le double clic
    Par niko8181 dans le forum Composants
    Réponses: 4
    Dernier message: 02/06/2005, 15h57

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