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] Est-il possible de rendre les cellules d'un JTable "cliquables" ?


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut [JTable] Est-il possible de rendre les cellules d'un JTable "cliquables" ?
    Bonjour tout le monde !

    Je voudrais savoir s'il est possible de rendre les cellules d'un JTable "cliquables". Je voudrais qu'en cliquant sur une cellule on obtienne un tableau plus détaillé.

    Je m'explique avec un exemple :

    J'ai une cellule qui contient "Régions" en cliquant, j'obtiens la liste des régions disponibles par exemple : "Nord-Pas de Calais", "Picardie", " Champagne-Ardenne", "Lorraine", "Alsace",.... toujours dans mon JTable

    Merci de vos réponses

  2. #2
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Salut,

    Je crois comprendre que tu aimerais qu'une cellule affiche un JComboBox pour choisir parmis une liste de valeur, voici un tuto :
    http://java.sun.com/docs/books/tutor....html#combobox

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    Non c'est pas vraiment ce que je veux.

    Si tu regardes l'image que j'ai mis en pièce jointe, tu auras une idée plus précise.
    Nom : tableau.jpg
Affichages : 335
Taille : 22,6 Ko

    J'ai un JTable dans lequel j'ai la barre des titres et la barre de données dans laquelle je veux pouvoir cliquer sur les mots soulignés.

    Dans mon exemple, si je clique sur Région, je vais avoir un tableau actualisé avec la liste de toutes les régions disponibles dans ma base de données.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Oui c'est possible !


    Problème résolu
    On avait jamais fait aussi court



    Trêve de plaisanterie ...

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package test;
     
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import javax.swing.JTable;
     
    public class Test implements MouseListener {
     
        private JTable table;
     
        public Test(JTable table) {
            this.table = table;
        }
     
        public void mouseClicked(MouseEvent e) {
        }
     
        public void mousePressed(MouseEvent e) {
        }
     
        public void mouseReleased(MouseEvent e) {
            int columnNumber = this.table.getColumnModel().getSelectionModel().getLeadSelectionIndex();
            String column = this.table.getColumnName(columnNumber);
            int row = this.table.getSelectionModel().getLeadSelectionIndex();
            if (column.equalsIgnoreCase("Select")) {
                //Lance une action (ouvrir un fichier, ...) en utilisant le paramètre row par exemple.
            }
        }
     
        public void mouseEntered(MouseEvent e) {
        }
     
        public void mouseExited(MouseEvent e) {
        }
     
    }

    En t'inspirant de ça je pense que ça devrait le faire.

  5. #5
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Le seul problème c'est que cela fonctionne uniquement avec la souris ! Pas top.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    Ben j'ai encore jamais cliqué avec clavier


    Et pis il y a marqué "cliquable" dans le titre


    Par contre si t'as mieux, moi je suis également preneur.

  7. #7
    Membre expérimenté
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 050
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 050
    Points : 1 340
    Points
    1 340
    Par défaut
    Citation Envoyé par Larger Voir le message
    Ben j'ai encore jamais cliqué avec clavier
    N'y aurais t-il pas une petite pointe d'ironie

    Cette remarque pousse à la réflexion. Ne peut-tu sélectionner un item du menu par le clavier ? C'est toute la différence entre un ActionListener et un MouseListener. Dans ce cas cela oblige l'utilisateur à se servir de la souris. Or bon nombre de personne ne peuvent que peu ou pas se servir d'une souris. Pour un soft pro c'est pas top... Si c'est un truc perso ou très restreint alors pourquoi pas !

    Citation Envoyé par Larger Voir le message
    Par contre si t'as mieux, moi je suis également preneur.
    Non je n'ai pas mieux (peut-être ajouter un bouton...). Mais de mon point de vue c'est quelque peu détourner l'utilisation d'une JTable qui est de spécifier des valeurs. Je trouve pas cela ergonomique et encore une fois, de mon point de vue, je chercherais une conception graphique différente. Cela dit ce n'était pas le propos de cette discussion.

    Bonne continuation

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Points : 230
    Points
    230
    Par défaut
    En effet, je m'incline !

    Dans ce cas, il faut reprendre mon exemple, transformer le MouseMotionListener en ActionListener et gérer la sortie clavier ?

    Ça m'intéresse fortement

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    Merci à tous les deux pour vos réponses.
    Ce n'est pas une application qui a pour objectif d'être commercialisée.

    Larger j'ai essayé d'utiliser les éléments que tu m'as donné mais pour l'instant ça ne fonctionne pas.

    J'ai mon tableau dans lequel j'ajoute un addMouseListener
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Object[][] donnees = {{"Test","Test 2"}}; 
    String[] titresColonnes = {"Titre 1","Titre 2"};  
    myTableModel = new DefaultTableModel(donnees, titresColonnes);		
    table = new JTable(myTableModel);
    table .setPreferredScrollableViewportSize(new Dimension(640,50));
    table .addMouseListener(new Test ());
    JScrollPane jsp = new JScrollPane(table );   
    panelBouton.add(jsp);
    Ensuite, j'ai la classe que tu m'as conseillé d'implémenter avec les Les 5 méthodes.

    Il se peut que j'ai mal compris quelque chose...

Discussions similaires

  1. Comment rendre toutes les cellules d'un jtable éditables?
    Par doudou7777 dans le forum Composants
    Réponses: 2
    Dernier message: 11/04/2014, 21h28
  2. rendre les cellules d'un jTable éditables
    Par ifsera dans le forum Composants
    Réponses: 1
    Dernier message: 03/05/2013, 11h14
  3. [FPDF] Est il possible d'arrondir les résultats dans une cellule ?
    Par oliviertoy dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 05/10/2011, 10h01
  4. Réponses: 2
    Dernier message: 20/05/2011, 13h15
  5. [Swing / JTable] Rendre les cellules d'un JTable non éditables
    Par Jérôme_20 dans le forum Composants
    Réponses: 20
    Dernier message: 10/02/2011, 10h32

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