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] rendre la sélection d'une ligne impossible


Sujet :

Composants Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut [JTable] rendre la sélection d'une ligne impossible
    Bonjour,

    Voilà j'ai une JTable dans laquelle j'aimerai qu'une seule ligne soit sélectionnée et sélectionnable...
    J'ai réussi à rendre toutes les lignes non sélectionnables "disabled" (avec un DefaultTableCellRenderer) mais en fait ça n'empêche pas que l'on puisse cliquer dessus...
    En lisant les divers sujets sur le forum qui ressemble à ma question j'ai trouvé aussi la méthode table.setRowSelectionInterval(num, num); ça sélectionne la bonne ligne mais ça n'empeche tj pas d'aller cliquer sur une autre ligne...

    Qqn a t-il une idée?

    Merci pour votre aide!

  2. #2
    Membre à l'essai
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    Essayer, pour ne pas autoriser la selection :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    JTable.setRowSelectionAllowed(false);
    JTable.setColumnSelectionAllowed(false);
    Une seule ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    JTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

  3. #3
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Ce qu'il entends c'est rendre une seule ligne selectionnable mais celle-ci est determinée. genre que la n°3
    JBusyComponent, une API pour rendre occupé un composant swing.
    SCJP Java 6.0 (90% pass score)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Oui c'est ça... Je connais l'index de la ligne qui peut être sélectionnée...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Est ce que je ne pourrais pas simplement , maintenant que j'ai grisé les lignes à inactiver vérifier cette propriété (isEnabled()) avant d'abonner à l'évènement valueChanged() ? En gros, je ne déclencherai d'évènements que si je ne suis pas sur une ligne grisée...
    Est ce que c'est possible ?
    Seulement je ne sais pas concrètement comment m'y prendre pour coder ça...Comment vérifier qu'une ligne n'est pas grisée avant de lancer mon évènement?

  6. #6
    Membre à l'essai
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    La manière la plus propre de faire cela est de définir ton propre listSelectionModel en implémentant justement ListSelectionModel, il y'a toutes les méthodes qu'il faut dedant.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 162
    Points : 72
    Points
    72
    Par défaut
    Bon voilà je ne sais pas si c'est vraiment la manière la plus propre de faire ça mais j'ai fait comme ça et ça a l'air de fonctionner :

    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
     table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            ListSelectionModel rowSM = table.getSelectionModel();
            rowSM.addListSelectionListener(new ListSelectionListener() {
                public void valueChanged(ListSelectionEvent e) {
                    ListSelectionModel lsm = (ListSelectionModel)e.getSource();
                    if (lsm.isSelectionEmpty()) {
                   //code à appliquer
                    } 
                     else {
                        int selectedRow = lsm.getMinSelectionIndex();
                        //num est l'index de la ligne que l'on peut sélectionner
                        if (selectedRow==num){
                           //code à appliquer
                        }
                        else{
                            lsm.clearSelection();
                        }
                    }
                }
            });
    Merci pour vos conseils...

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

Discussions similaires

  1. Ecouter la sélection d'une ligne dans une JTable
    Par cisnake dans le forum Composants
    Réponses: 4
    Dernier message: 17/09/2012, 15h27
  2. Réponses: 2
    Dernier message: 13/10/2011, 16h55
  3. [JTable] autoriser la sélection d'une seule ligne
    Par simla dans le forum Composants
    Réponses: 4
    Dernier message: 06/03/2008, 13h06
  4. [JTable] Sélection d'une Ligne
    Par lanfeustdetroll dans le forum Composants
    Réponses: 4
    Dernier message: 18/08/2005, 17h59
  5. Sélection d'une ligne dans un JTable
    Par dam21 dans le forum Composants
    Réponses: 3
    Dernier message: 28/07/2004, 12h57

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