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] Listener sur une ligne


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Par défaut [JTable] Listener sur une ligne
    J'aimerai ajouter une méthode qui récupère l'élément ( String ) de la première colonne de la ligne qui a été double cliquée.
    Dans ma Table j'ai des fichiers avec le nom le type date etc... et grossièrement j'aimerai double cliquer sur une ligne et que ça ouvre une fenêtre avec l'image à l'intérieur.
    Dans mon modèle de table (non éditable ) comment déclarer que le double clique appelle une méthode ?
    Je pense qu'il faut utiliser les actionlisteners mais je ne sais pas les utiliser sur une Table.
    Merci

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ajoute un MouseListener à ta JTable et lors du MouseClicked en vérifiant le retour de la méthode getClickCount (qui doit être égal à 2) puis utilise les méthodes et de la JTable pour savoir à quelle ligne s'est passé le clic.

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Par défaut
    la méthode est parfaite ! Merci beaucoup !


    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
    @Override
    	public void mouseClicked(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    		 if (arg0.getClickCount() == 2) {
    	            Point p = arg0.getPoint();
     
    	            int row = table.rowAtPoint(p);
    	            int column = table.convertColumnIndexToModel(table.columnAtPoint(p));
    	            if (row >= 0 && column >= 0) {
    	              //mouseDblClicked(row, column);
     
    	            	//System.out.println("Valeur " + table.getValueAt(row, 0));  // On souhaite toujours récupérer le nom du fichier
    	             }
    		 }
    Maintenant, j'aimerai faire un Keylistener sur cette table également.
    Si j'appuie sur entrer lorsque je suis sur une ligne, ça fait la même action qu'un double clique.


    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
    public class Table extends JPanel implements MouseListener, KeyListener{
    //
     
     
     
    @Override
    	public void keyPressed(KeyEvent arg0) {
    		// TODO Auto-generated method stub
    		if(arg0.getKeyCode() == KeyEvent.VK_ENTER)
    		{
    			System.out.println("Entrer !!");
     
            }
     
     
     
    	}
    Ma question ici est : " comment récuperer la ligne sur laquelle on a cliqué ?
    C'est exactement le même problème que le précédent sauf pour le clavier. Ici on ne peut pas utiliser la méthode du point.
    Qu'en est il des méthodes sûres à utiliser ?
    Merci pour votre efficacité

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Les méthodes getSelectedRow et getSelectedColumn de la JTable devraient faire l'affaire.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2009
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 100
    Par défaut
    effectivement, ça fonctionne bien comme ça merci bien.

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

Discussions similaires

  1. [JTable] maintien du focus sur une ligne
    Par rednik dans le forum Composants
    Réponses: 3
    Dernier message: 20/08/2008, 17h37
  2. [JTable] Repérer un double clic sur une ligne
    Par nolofinwe dans le forum Composants
    Réponses: 2
    Dernier message: 28/05/2008, 15h53
  3. Detecter un changement sur une ligne dans une JTable
    Par RR instinct dans le forum Composants
    Réponses: 8
    Dernier message: 10/04/2008, 12h58
  4. [JTable]Positionner la vue sur une ligne
    Par doGet dans le forum Composants
    Réponses: 6
    Dernier message: 19/02/2008, 14h42
  5. Création d'un menu sur une ligne de JTable
    Par devAd dans le forum Composants
    Réponses: 3
    Dernier message: 16/11/2006, 10h49

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