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 :

Problème addMouseListener mouseClicked()


Sujet :

AWT/Swing Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2017
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : septembre 2017
    Messages : 85
    Points : 58
    Points
    58
    Par défaut Problème addMouseListener mouseClicked()
    Bonjour,

    J'ai un programme qui récupère des données dans une DB et je les affiche à l'aide de JTable.
    J'arrive à afficher une liste de clients dans un tableau, je souhaite pouvoir cliquer sur un de ces clients et afficher les films a loués.
    Cette invocation se fait via une procédure stockée qui demande l'id du client.
    Problème, dans le code qui suit, j'ai un problème avec mon setId, quand je debug, celui-ci est null (ligne 14).

    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
     
    /**
             * méthode qui va permettre de recréer un objet à partir d'un clic de
             * souris dans ma table.
             *
             * @param event
             */
            tableau.addMouseListener(new java.awt.event.MouseAdapter() {//class anonyme         
                @Override
                public void mouseClicked(java.awt.event.MouseEvent event) {
                    int row = tableau.rowAtPoint(event.getPoint());//renvoie le numéro de la ligne
                    //on récupère les info dans la ligne clickée et dans chaque colonne pour recréer un objet à partir d'un clic dans une colonne
                    Client clientSelected = new Client();
                    clientSelected.setId((int) tableau.getValueAt(row, 0));
                    //clientSelected.setId((String) tableau.getValueAt(row, 0));
                    clientSelected.setPrenom((String) tableau.getValueAt(row, 1));
                    //clientSelected.setNom((String) tableau.getValueAt(row, 1));
                    clientSelected.setNom((String) tableau.getValueAt(row, 2));
                    gest.afficheFilmsLoues(clientSelected);//appel de la méthode qui affiche le formulaire pour del et update
                }
            });
    Peut-être que quelqu'un me mettra sur la voie, à force d'avoir le nez dedans, je suis bloqué.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    août 2006
    Messages
    3 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2006
    Messages : 3 884
    Points : 7 645
    Points
    7 645
    Par défaut
    Tu devrais peut être ne pas utiliser le mouselistener, mais plutot un ListSelectionListener déjà pour commencer. (How to)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2017
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : septembre 2017
    Messages : 85
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Tu devrais peut être ne pas utiliser le mouselistener, mais plutot un ListSelectionListener déjà pour commencer. (How to)
    C'est une action de la souris qui doit être écoutée ici, non?
    En fait ici, quand je clic sur un cllient, je dois au moins récupérer son id, pour afficher les films loué par ce client. Et j'ai déjà un soucis à ce niveau là, l'id est null.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    clientSelected.setId((int) tableau.getValueAt(row, 0));
    J'ai déjà utilisé ce genre de code, pour ouvrir un formulaire de modification d'un article et ça fonctionnait très bien, si ce n'est que je ne récupérais pas un int mais un String.

  4. #4
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    août 2006
    Messages
    3 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2006
    Messages : 3 884
    Points : 7 645
    Points
    7 645
    Par défaut
    Citation Envoyé par Cisman Voir le message
    C'est une action de la souris qui doit être écoutée ici, non?
    Merci mais ça j'avais compris

    Ma remarque reste valable et sera certainement plus propre que le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int row = tableau.rowAtPoint(event.getPoint());
    puisque le listener en question va te donner les index de la ou des lignes selectionnées. (et donc tu pourra retrouver te objets).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    septembre 2017
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : septembre 2017
    Messages : 85
    Points : 58
    Points
    58
    Par défaut
    Bon, j'ai résolu ou plutôt contourné le problème.

    en fait, je devais récupérer cet id dans une colonne de mon tableau, mais celle-ci ne devait pas être visible.

    Au départ, je n'avais pas créé cette colonne, d'où mon problème pour récupérer l'id.

    Pour finir, j'ai bien créer cette colonne, ce qui facilite grandement les choses pour y récupérer des données, mais l'astuce, c'est que je cache cette colonne id pour qu'elle n'apparaisse pas dans mon tableau.

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

Discussions similaires

  1. Problème d'ordre de FocusLost et MouseClicked
    Par amine1980 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 06/11/2011, 00h40
  2. Problème addMouseListener (this)
    Par guillaume59680 dans le forum Débuter
    Réponses: 3
    Dernier message: 10/10/2008, 10h04
  3. Problème avec addMouseListener
    Par quentin06 dans le forum 2D
    Réponses: 8
    Dernier message: 09/06/2008, 13h32
  4. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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