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] comportement bizarre lors de la selection d'une jcheckbox


Sujet :

Composants Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut [JTable] comportement bizarre lors de la selection d'une jcheckbox
    rebonjour tout le monde, j'ai de nouveau besoin de vos lumières.

    donc voila jai une table toute simple a 2 colonnes. la 2eme colonne est composée de jcheckbox. j'ai un listener sur la table qui me préviens quand je clique sur une jcheckbox.

    un extrait du code du constructeur pour voir la structure :
    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
    37
     
    jTableCritModel = new DefaultTableModel() {
                public Class getColumnClass(int vIntCol)
                {
                    return getValueAt(0, vIntCol).getClass();
                }
     
                public boolean isCellEditable(int iRowIndex, int iColumnIndex)
                {
                    if (iColumnIndex == 0)
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
            };
     
    this.getColumnModel().getColumn(1).setCellRenderer(this.
                getDefaultRenderer(
                    Boolean.class));
     
            this.addMouseListener(new MouseAdapter() {
                @Override
                    public void mouseReleased(MouseEvent e)
                {
                    tableCritMouseReleased(e);
                }
            });
     
            setRowSelectionAllowed(false);
            setColumnSelectionAllowed(false);
            setCellSelectionEnabled(false);
            setDragEnabled(false);
            tableHeader.setReorderingAllowed(false);
    Mon problème est le suivant : lorsque je clique sur une jchekbox, tout ce passe normalement : la méthode tableCritMouseReleased(e) est bien appelée. Par contre si j'ai le malheur de sortir de la jcheckbox en laissant appuyé le bouton de la souris, il ne se passe rien (normal) MAIS la jcheckbox prends une couleur bleutée comme si elle était sélectionnée (par contre l'état visible (cochée ou non) de la jcheckbox ne change pas) et lorsque je reclic dessus, ca la coche ou la décoche sans passer par le listener.

    Donc en gros quand je fais un espece de drag&drop sur une jcheckbox et que je sors du cadre de celle ci, elle devient selectionner et il n'y a plus de listeners levés quand je reclique dessus la fois suivante.

    Savez vous ce qu'il convient de faire dans ces cas la ?

  2. #2
    Membre confirmé 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
    Points : 505
    Points
    505
    Par défaut
    Dans ce cas, tu peux essayer de terminer l'édition avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void mouseDragged(MouseEvent e) {
    	if(isEditing() && ! getCellEditor().stopCellEditing()) {
    		getCellEditor().cancelCellEditing();
    	}
    }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 30
    Points : 23
    Points
    23
    Par défaut
    je placerais ca ou ngpub ? parce que la méthode mouseDragged n'existe pas dans l'interface MouseListener

  4. #4
    Membre confirmé 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
    Points : 505
    Points
    505
    Par défaut
    Citation Envoyé par Mushu74 Voir le message
    je placerais ca ou ngpub ? parce que la méthode mouseDragged n'existe pas dans l'interface MouseListener
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MouseAdapter mouseAdapter = new MouseAdapter() { ... }
    addMouseListener(mouseAdapter);
    addMouseMotionListener(mouseAdapter);

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/08/2012, 14h37
  2. Réponses: 0
    Dernier message: 22/05/2012, 17h38
  3. Comportement bizarre d'un layout:select
    Par ruff15 dans le forum Struts 1
    Réponses: 4
    Dernier message: 27/10/2008, 11h28
  4. Réponses: 17
    Dernier message: 07/06/2007, 14h25
  5. Réponses: 1
    Dernier message: 23/11/2006, 19h07

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