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 :

JTable et selection multiple


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 131
    Par défaut JTable et selection multiple
    Bonjour,
    Je travaille actuellement avec des JTables et je souhaiterai faire de la selection multiple...
    J ai donc rajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    Cependant avec ce cas de figure il est possible de faire de la selection multiple avec Ctrl+clicGauche ...
    Ma question est la suivante comment realiser la selection multiple en ne Cliquant que sur le boutton gauche de la souris...
    Merci

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Par défaut
    Vite fait en passant l'idée je pense c'est de laisser ta ligne

    table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

    et de rajouter un mouseListener sur la vue de ta JTable puis a chaque fois que tu detect un clic tu regarde la source de l'evenement et tu met la case en selected

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 131
    Par défaut
    Le truc c est que c est ce que j ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    table.addMouseListener(new MouseAdapter(){
    					public void mousePressed(MouseEvent e)
    					{
    						int index = table.rowAtPoint(e.getPoint());
    						if(index != -1)
    							table.addRowSelectionInterval(index,index);
    					}
    });
    Mais la il me perd kan meme la premiere ligne selectionnee !!!!
    J ai l impression que nativement la JTable a un Listener et quand tu clic dessus cela fais un table.setRowSelectionInterval(index,index); et que cet evenement est appele apres le mien ...

    Enfin si tu as une autre idee...
    Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut
    moi non plus , ca ne fonctionne pas
    bidouille :
    a chaque evenement, tu rajoutes l'indice de la ligne sélectionnée dans un tableau de lignes sélectionnées,
    puis pour chaque ligne du tableau, tu fais

    table.addRowSelectionInterval(ligne_i,ligne_i);

    pas mieux

  5. #5
    Membre éclairé 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
    Par défaut
    D'après le fonctionnement de BasicTableUI, j'ai trouvé une ruse qui satisfait tes besoins. Dans ta sous-classe de JTable, redéfinit la méthode changeSelection ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void changeSelection(int rowIndex, int columnIndex, boolean toggle, boolean extend) {
      super.changeSelection(rowIndex, columnIndex, true, extend);
    }
    Si tu regardes dans le source de BasicTableUI, tu verras que toggle prend la valeur renvoyée par e.isControlDown(). En passant true systématiquement, tu fais sauter ce contrôle, et le toggle selection est systématique !
    Mais attention, cette astuce a peut-être des effets de bord indésirables car la méthode changeSelection est aussi appelée sur certaines touches...

Discussions similaires

  1. Select multiple
    Par lfournial dans le forum Struts 1
    Réponses: 20
    Dernier message: 24/02/2011, 12h14
  2. Réponses: 1
    Dernier message: 31/08/2009, 12h06
  3. [VB6] sélection multiple de colonne dans excel grâce à VB
    Par biquet dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/08/2004, 12h44
  4. <select multiple ...>
    Par ayobo dans le forum ASP
    Réponses: 2
    Dernier message: 06/07/2004, 08h49
  5. [C#]Sauvegarde d'une selection multiple d'une listbox?
    Par onouiri dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/04/2004, 17h16

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