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 gestion du clic cellule


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Par défaut jtable gestion du clic cellule
    Bonjour à vous

    Dans mes tables, j'utilise un mouseadapter pour gerer les clics des cellules.

    Souvent sur clic, je gere seulement le "Released" et je fais ouvrir une fenetre de dialogue de choix.
    Malgrés un booleen que je mets dans mon test , j'ai mafenetre de dialogue qui se rouvre dés sa fermeture et cela jusqu'a parfois plus de 10 fois.

    voici mon code:
    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
     
    private void initclictable() {
            jTable1.addMouseListener(new MouseAdapter() {
     
                public void mouseReleased(MouseEvent e) {
                    Point p = e.getPoint();
                    int col = jTable1.columnAtPoint(p);
                    int row = jTable1.rowAtPoint(p);
                    System.out.println("clic   " + clic);
                    if (!clic) {
                        clic = true;
                    } else {
                        clic = false;
                    }
                    if (col == 0&& clic) {
                        Fenetre fen = new Fenetre();
                        Date madate = recupdate(fen, "choissisez la date", "calendrier");
                        fen.dispose();
                        if (madate != null) {
     
                            DateEntree = new Timestamp(madate.getTime());
                            jTable1.setValueAt(NicoFormat.format(madate), row, col);
                            clic = false;
                            jButtonenregistrerhistorique.requestFocus();
     
                        }
     
                    }
                                }
            });
        }
    et
    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
     
    public Date recupdate(Component parentComponent, Object legende, String titre) {
     
     
            Object[] message = {legende, calendar};
            Date madate = null;
            int response = JOptionPane.showOptionDialog(
                    parentComponent, message, titre,
                    JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,
                    null, null, null);
            if (response == JOptionPane.OK_OPTION) {
                madate = calendar.getDate();
            }
            return madate;
        }
    La je veux recuperer une date et comme le calendrier se reinitialise à la date du jour, c'est mega lourd.
    J'ai mis un booleen pour compter qu'un clic sur 2 et j'ai mis un focus sur un bouton pour essayer de n'avoir qu'un seul clic pris en compte.D'ailleurs, j'ai qu'un seul clic mais qui est pris en compte plein de fois.
    Parfois ça marche bien et souvent non.
    C'est souvent en terminal serveur que cela marche mal.

    Merci de m'orienter vers une solution à ce probléme.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Par défaut
    J'ai (résolu) contourné mon probléme en passant par des ListSelectionListener ou je gere le changement de row et column. Ce qui correspond à un clic sur une cellule de la part de l'utilisateur.

    Mais je sais toujours pas pourquoi pour un clic effectué, ça gérait un nombre aléatoire de fois cet évenement ....

  3. #3
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Ce genre d'erreur ressemble beaucoup au fait d'ajouter plusieurs fois le même listener.
    Sans avoir vu le code, je ne serais pas surpris que "initclictable()" soit appelé plusieurs fois.
    Un MouseListener sur un JTable ça fonctionne très bien tout-seul (sans booléen ni ListSelectionListener).

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

Discussions similaires

  1. Edition des cellules d'une JTable en un clic
    Par sebac dans le forum Composants
    Réponses: 2
    Dernier message: 17/08/2011, 15h48
  2. [JTable] savoir si une cellule est selectionnée
    Par lipao17 dans le forum Composants
    Réponses: 10
    Dernier message: 27/05/2010, 16h44
  3. JTable (Netbeans) : Double clic dans une cellule
    Par maparè dans le forum Composants
    Réponses: 0
    Dernier message: 26/03/2010, 17h08
  4. Gestion du clic de la souris (SDL)
    Par insomniak dans le forum SDL
    Réponses: 2
    Dernier message: 21/10/2005, 18h43
  5. [JTable] gestion des événements
    Par soulhouf dans le forum Composants
    Réponses: 4
    Dernier message: 19/08/2005, 13h21

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