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 :

getSelectedRow retourne -1 quand il est reappelé


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Par défaut getSelectedRow retourne -1 quand il est reappelé
    Bonjour,

    Ca fait un petit moment que je cherche une solution à mon problème et que je suis bredouille... Voilà l'affaire :

    J'ai un actionListener sur un bouton "afficher" dans un agenda électronique. Dans un panneau j'ai une liste de contacts rangés dans un JTable. L'appui sur le bouton appelle une fonction "afficherContact" et affiche un autre panneau correspondant à l'affichage.

    Cette fonction va
    1) Chercher l'indice de la ligne sélectionnée grâce à getSelectedRow
    2) Chercher le nom correspondant dans le JTable
    3) Le comparer à des noms dans une base de donnée et renvoyer tous les renseignements relatifs au contact.

    Les étapes 2) et 3) marchent bien mais pas la 1). En effet la première fois que je clique sur le bouton "afficher" tout se passe bien, mais si je reviens sur mon panneau avec ma liste de contacts, que je sélectionne n'importe lequel et que je clique de nouveau sur le bouton, getSelectedRow renvoie -1.

    J'ai aussi essayé de faire une boucle pour tester isRowSelected et j'ai aussi tenté getLeadSelectionIndex(). Les trois méthodes renvoient le bon indice dans le premier cas mais ne marche plus la deuxième fois.


    Est-ce que quelqu'un aurait une idée pour résoudre ça ?
    Comme je suis débutante je suis peut-être passée à côté d'un truc tout bête >.<

  2. #2
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Salut !

    si je reviens sur mon panneau avec ma liste de contacts, que je sélectionne n'importe lequel
    est-ce que tu veux dire que à la sélection suivants d'une ligne de la table le getSelectedRow renvoie -1 ?
    ... comme si contrairement à ce qui semble aucune ligne n'était sélectionnée ?

    faudrait voir le code du bouton, et s'assurer qu'on passe bien dans son listener chaque fois.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Par défaut
    Citation Envoyé par fraco Voir le message
    est-ce que tu veux dire que à la sélection suivants d'une ligne de la table le getSelectedRow renvoie -1 ?
    ... comme si contrairement à ce qui semble aucune ligne n'était sélectionnée
    Salut, merci pour ta réponse. C'est ce qu'il me semble oui. J'ai fait un System.ou.println et à chaque fois que je clique sur mon bouton "afficher" le getSelectedRow renvoie -1 (à partir de la deuxième fois).
    Voici le code du listener du bouton (c'est un JButton normal et le getCl renvoie un CardLayout) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Listener du bouton Afficher du panneau nord	
     
    	interfaceGraphique.getPanneauNord().getBoutonAfficher().addActionListener(new ActionListener() {
    		public void actionPerformed(ActionEvent arg0) {
    				agenda.afficherContact(resultContact, interfaceGraphique);
    				interfaceGraphique.getCl().show(interfaceGraphique.getPanneauCentre(), "panneauAfficherContact");
     
    		}
    	});
    Et voici une partie du code de de afficherContact :

    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
    	public void afficherContact(ResultSet resultContact, InterfaceGraphique interfaceGraphique){
     
     		int selectedRow=interfaceGraphique.getPanneauContact().getTableauContact().getSelectedRow();	
    		System.out.println("index avec selectedRow "+selectedRow);
    		String nom = (String) interfaceGraphique.getPanneauContact().getTableauContact().getValueAt(selectedRow, 0);
    		String prenom = (String) interfaceGraphique.getPanneauContact().getTableauContact()getValueAt(selectedRow,1);
     
    		//positionnement du ResulSet sur la ligne correspondant au nom sélectionné
    		try {
    			resultContact.beforeFirst();
    			resultContact.next();
     
    			while (!(resultContact.getString("nom").equals(nom))) {
    				resultContact.next();
    			}
    			if(!(resultContact.getString("prenom").equals(prenom))){
    				while (resultContact.getString("prenom")!=prenom) {
    					resultContact.next();
    				}
    			}
     
    // Récupération des infos dans le ResultSet
    			String mail1=resultContact.getString("mail1");
    etc.
    // Initialisation des champs du panneau affichant les détails du contact
    			interfaceGraphique.getPanneauAfficherContact().getChampMail1().setText(mail1);
    			interfaceGraphique.getPanneauAfficherContact().getChampMail1().setEditable(false);
    etc.
     
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Par défaut
    Bonsoir,

    En fait c'est bon, je viens de trouver l'erreur . Le problème venait de plus loin dans la création de mon panneau avec ma liste de contact.

    J'appelais une fonction qui créait et ajoutait le tableau de la liste des contacts à mon panneau. J'ai mal géré cette fonction et je l'ai appelée à chaque clic sur un bouton. Du coup, j'ajoutais le même tableau plusieurs fois de suite à un même panneau. Il m'a suffit de faire un removeAll avant de l'appeler pour que ça marche, même si je dois avoir moyen de trouver une solution plus élégante.

    Désolé pour le dérangement et bonnes fêtes à tous

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

Discussions similaires

  1. Comment déterminer son tarif quand on est Freelance ?
    Par nolwenn dans le forum Freelance
    Réponses: 21
    Dernier message: 12/06/2025, 21h06
  2. Redemarrage quand IE est lancé
    Par kitiss dans le forum Windows XP
    Réponses: 2
    Dernier message: 01/09/2006, 01h11
  3. Réponses: 2
    Dernier message: 26/04/2006, 12h18
  4. pourquoi l'appli quitte quand elle est vide
    Par firejocker dans le forum MFC
    Réponses: 1
    Dernier message: 10/11/2005, 15h20
  5. Comment débuter en prog quand on est aveugle
    Par Rataf dans le forum Débuter
    Réponses: 2
    Dernier message: 04/04/2003, 23h13

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