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 :

[Swing] JCheckbox dans JTable qui change de position


Sujet :

Composants Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    422
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 422
    Points : 113
    Points
    113
    Par défaut [Swing] JCheckbox dans JTable qui change de position
    Salut,
    j'ai inséré une jchecbox centrée dans une cellule de jtable en implémentant l'interface TableCellRenderer et en mettant comme éditeur par défaut un DefaultCellEditor . Le problème est que lorsque je clique sur la checkbox elle change de position et s'aligne sur la droite puis elle revient au centre une fois qu'elle est cochée .
    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
    38
    39
    40
     
    .....
     JCheckBox jc = new JCheckBox();
            DefaultCellEditor de = new DefaultCellEditor(jc);
     
     
            TableColumn tc1 = jTableRole.getColumnModel().getColumn(1);
     
            tc1.setCellRenderer(new CheckBoxRenderer());
     
            tc1.setCellEditor(de);
    ......
     
    class CheckBoxRenderer extends JCheckBox implements TableCellRenderer {
     
        CheckBoxRenderer() {
            setHorizontalAlignment(JLabel.CENTER);
     
        }
     
        public Component getTableCellRendererComponent(JTable table, Object value,
                boolean isSelected, boolean hasFocus, int row, int column) {
     
     
            if (isSelected) {
     
                setForeground(table.getSelectionForeground());
                //super.setBackground(table.getSelectionBackground());
                setBackground(table.getSelectionBackground());
            } else {
     
                setForeground(table.getForeground());
                setBackground(table.getBackground());
            }
            setSelected((value != null && ((Boolean) value).booleanValue()));
     
            return this;
        }
     
    }
    Que faire pour changer ce comportement ?

    Merci d'avance .

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    Lorsque tu cliques sur la cellule c'est l'éditeur qui renvoie le composant. Il faut donc modifier de la même manière ton éditeur.

Discussions similaires

  1. Layout qui change de position apres action sur listview
    Par Fooshi dans le forum Composants graphiques
    Réponses: 9
    Dernier message: 31/05/2013, 09h26
  2. [Google Maps] comment créer une fonction javascript qui change la position courante
    Par dearraed dans le forum APIs Google
    Réponses: 1
    Dernier message: 25/05/2013, 20h28
  3. [Swing] JCheckBox dans JTable, clic difficile
    Par Kihmé Xs dans le forum Composants
    Réponses: 2
    Dernier message: 27/07/2011, 16h12
  4. JButton dans JTable qui supprime ligne
    Par Tchoupi34 dans le forum Composants
    Réponses: 5
    Dernier message: 14/07/2010, 22h16
  5. Form qui change de position toute seul dans un mdiContainer
    Par obitskater dans le forum Windows Forms
    Réponses: 4
    Dernier message: 30/03/2009, 13h54

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