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 :

JCheckBox dans JTree


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Par défaut JCheckBox dans JTree
    Bonjour,

    j'ai ajouté 2 cases à cocher dans mon arbre, cependant je n'arrive pas à les cocher/décocher. Sauriez-vous m'expliquez pourquoi?

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    public class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer{ 
            private TreeCellRenderer delegate; 
            private JCheckBox checkBox1; 
            private JCheckBox checkBox2;
            private JLabel param, admin;
     
            public CheckTreeCellRenderer(TreeCellRenderer delegate) {
                this.delegate = delegate;
                this.setLayout(new BorderLayout()); 
                this.setOpaque(false);
     
                this.checkBox1 = new JCheckBox();
                this.checkBox2 = new JCheckBox();
    //            this.checkBox1.setOpaque(false);
    //            this.checkBox2.setOpaque(false);
                this.checkBox1.setFocusable(true);
                this.param=new JLabel("Param");
                this.admin=new JLabel("Admin");
            }
     
            public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){ 
                Component renderer = delegate.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); 
     
                removeAll();
     
                TreePath path = tree.getPathForRow(row);
     
                if(path==null)
                    return renderer;
     
                if(row==0) {
                    add(renderer, BorderLayout.CENTER);
                    add(getPanel4FirstLine(), BorderLayout.EAST);                
                }
                else if(path.getPathCount()==2){
                    add(renderer, BorderLayout.CENTER);
                }
                else {
                    add(renderer, BorderLayout.CENTER);
                    add(getPanel(checkBox1, checkBox2), BorderLayout.EAST);
                }
     
                return this;
            }
     
            private JPanel getPanel(JCheckBox c1, JCheckBox c2) {
                JPanel p=new JPanel();
                GroupLayout layout = new GroupLayout(p);        
                layout.setHorizontalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(c1))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(c2))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                );        
                layout.setVerticalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_VERTICAL_GROUP/2)
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(c1)
                            .addComponent(c2))
                );        
                p.setLayout(layout);
     
                return p;
            }
     
            private JPanel getPanel4FirstLine() {
                JPanel p=new JPanel();
                GroupLayout layout = new GroupLayout(p);        
                layout.setHorizontalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(this.param))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(this.admin))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                );        
                layout.setVerticalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_VERTICAL_GROUP+2)
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(this.param)
                            .addComponent(this.admin))
                );        
                p.setLayout(layout);
     
                return p;
            }
        }
    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
    Appels la méthode setEditable(true) sur ton JTree pour commencer,

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Par défaut
    Salut,

    j'avais déjà testé cette solution, mais cela ne résoud pas mon problème. L'arbre est bien éditable (on peut modifier le texte des noeuds), mais toujours pas les checkbox. De plus je ne souhaite pas que mon arbre puisse être éditable.

    Merci

  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
    Arf j'oubliais, il te faut également un editor en plus du renderer, ce dernier s'occupant exclusivement du rendu.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Par défaut
    Comment utilise-t-on l'editor dans ce cas? Je m'en suis déjà servi pour des tableaux, mais là je n'arrive pas à l'utiliser :
    Où placer la méthode setCellEditor(new DefaultCellEditor(new JCheckBox()));

    Je l'ai fait sur l'arbre, mais on dirait que lorsque je clique sur le nom du noeud qu'une checkbox apparait derrière, alors que mes checkbox sont situées tout à droite. De plus rien ne se passe lorsqu'on clique dessus...

    Aurais-tu un exemple?

  6. #6
    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

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Par défaut
    Suite à tes conseils, j'ai essayé de faire cet editor, mais j'ai malheureusement beaucoup de mal à m'en servir. Voici le code que j'utilise :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    class CheckBoxNodeEditor extends AbstractCellEditor implements TreeCellEditor {
            CheckTreeCellRenderer renderer = new CheckTreeCellRenderer(treeCIB4Taxo.getCellRenderer());
     
    //        ChangeEvent changeEvent = null;
     
            JTree tree;
     
            public CheckBoxNodeEditor(JTree tree) {
                this.tree = tree;
            }
     
            public Object getCellEditorValue() {
                return null;//renderer.getCheckBoxAdmin();
    //            JCheckBox checkbox = renderer.getCheckBoxAdmin();
    //            CheckBoxNode checkBoxNode = new CheckBoxNode(checkbox.getText(), checkbox.isSelected());
    //            return checkBoxNode;
            }
     
            public boolean isCellEditable(EventObject event) {
    //            boolean returnValue = false;
    //            if (event instanceof MouseEvent) {
    //                MouseEvent mouseEvent = (MouseEvent) event;
    //                TreePath path = tree.getPathForLocation(mouseEvent.getX(), mouseEvent.getY());
    ////                renderer.getPanel4CheckBoxes().getMousePo
    //                if (path != null) {
    //                    Object node = path.getLastPathComponent();
    //                    if ((node != null) && (node instanceof DefaultMutableTreeNode)) {
    //                        DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) node;
    //                        Object userObject = treeNode.getUserObject();
    //                        returnValue = ((treeNode.isLeaf()) && (userObject instanceof JCheckBox));
    //                    }
    //                }
    //                
    //            }
    //            return returnValue;
                return true;
            }
     
            public Component getTreeCellEditorComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row) {
     
                CheckTreeCellRenderer editor = (CheckTreeCellRenderer) renderer.getTreeCellRendererComponent(tree, value, true, expanded, leaf, row, true);
     
    //            ItemListener itemListener = new ItemListener() {
    //                public void itemStateChanged(ItemEvent itemEvent) {
    //                    if (stopCellEditing()) {
    //                      fireEditingStopped();
    //                    }
    //                }
    //            };
    //            editor.getCheckBoxAdmin().addItemListener(itemListener);
    //            editor.getCheckBoxParam().addItemListener(itemListener);
    //            if (editor instanceof JCheckBox) {
    //              ((JCheckBox) editor).addItemListener(itemListener);
    //            }
                return editor;
            }
        }
    Lorsque je clique sur la checkbox, rien ne se passe, par contre lorsque je clique sur le nom du noeud, celui-ci s'efface et les checkbox se décalent vers la gauche. Si maintenant je clique sur ces checkbox, celles-ci se cochent! (Mais les valeurs ne sont pas sauvegardées lorsque je reclique sur un autre noeud).

    Je suppose que mon problème provient de la méthode getTreeCellEditorComponent(). Pourrais-tu m'aiguiller s'il te plait.

    J'ai mis en pièces jointes des copies écran du scénario précédent.

    Merci.
    Images attachées Images attachées     

  8. #8
    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
    En fait la méthode getTreeCellEditorComponent doit être codée de façon quais identique à la méthode getTreeCellRendererComponent de ton renderer.
    rien de plus.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Par défaut
    Je viens de faire quasiment un copier/copier, mais le problème est identique, sauf que le nom du noeud réapparait si on clique dessus.
    Le problème doit provenir d'ailleurs...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Par défaut
    Bonjour,

    j'ai pu avancer sur la résolution de mon problème, cependant je suis toujours confronté à des difficultés :
    Le panel contenant les checkboxes se décale à gauche.
    Une autre chose étrange est que lors du premier clic sur la première checkbox, aucune action (cocher/décocher) n'est effectuée, il faut cliquer une deuxième fois. Par contre tout se déroule normalement sur la seconde checkbox (???).

    A priori le problème du décalage du panel proviendrait du look and feel que j'utilise, qui n'est pas reproduit dans mon editor. Celui que j'utilise est substance. Sans look and feel je n'est pas ce problème... (voir images écran)

    Voici le nouveau code de mon renderer
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    public class CheckTreeCellRenderer implements TreeCellRenderer {
     
            public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus){ 
                JCheckBox checkBoxParam=new JCheckBox();
                JCheckBox checkBoxAdmin=new JCheckBox();
                JLabel nodeName=new JLabel();
                JLabel param=new JLabel("Param");
                JLabel admin=new JLabel("Admin");
                JPanel panel=new JPanel(new BorderLayout());
                JPanel panel4CheckBoxes;
     
                if (value instanceof DefaultMutableTreeNode) {
                    DefaultMutableTreeNode myNode = (DefaultMutableTreeNode) value;
     
                    if(myNode.isLeaf()) {                    
                        Taxo4CIB4User t=(Taxo4CIB4User) myNode.getUserObject();
                        nodeName.setText(t.getTaxonomie());
                        if(t.isIsParametrable())
                            checkBoxParam.setSelected(true);
                        else
                            checkBoxParam.setSelected(false);
                        if(t.isIsAdmin())
                            checkBoxAdmin.setSelected(true);
                        else
                            checkBoxAdmin.setSelected(false);
     
                        panel4CheckBoxes=getPanel4CheckBoxes(checkBoxParam, checkBoxAdmin);
                        panel.add(nodeName, BorderLayout.CENTER);
                        panel.add(panel4CheckBoxes, BorderLayout.EAST);
                    }
                    else {
                        nodeName.setText((String) myNode.getUserObject());
                        if(row==0) {                        
                            panel.add(nodeName, BorderLayout.CENTER);
                            panel.add(getPanel4FirstLine(param, admin), BorderLayout.EAST);                
                        }
                        else {
                            panel.add(nodeName, BorderLayout.CENTER);
                        }
                    }
                }
                return panel;
            }
     
            private JPanel getPanel4CheckBoxes(JCheckBox checkBoxParam, JCheckBox checkBoxAdmin) {
                JPanel p=new JPanel();
                GroupLayout layout = new GroupLayout(p);        
                layout.setHorizontalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(checkBoxParam))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(checkBoxAdmin))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                );        
                layout.setVerticalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_VERTICAL_GROUP/2)
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(checkBoxParam)
                            .addComponent(checkBoxAdmin))
                );        
                p.setLayout(layout);
     
                return p;
            }
     
            private JPanel getPanel4FirstLine(JLabel param, JLabel admin) {
                JPanel p=new JPanel();
                GroupLayout layout = new GroupLayout(p);        
                layout.setHorizontalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(param))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(admin))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                );        
                layout.setVerticalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_VERTICAL_GROUP+2)
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(param)
                            .addComponent(admin))
                );        
                p.setLayout(layout);
     
                return p;
            }
        }
    Voici le code de mon cellEditor, qui ressemble fortement au renderer :
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    public class CheckBoxNodeEditor extends AbstractCellEditor implements TreeCellEditor {
            private Taxo4CIB4User t;
     
            public Component getTreeCellEditorComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row) {
                JCheckBox checkBoxParam=new JCheckBox();
                JCheckBox checkBoxAdmin=new JCheckBox();
                checkBoxParam.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent arg0) {
                        t.setIsParametrable(!t.isIsParametrable());
                        stopCellEditing();
                    }
                });
                checkBoxAdmin.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent arg0) {
                        t.setIsAdmin(!t.isIsAdmin());
                        stopCellEditing();
                    }
                });
                JLabel nodeName=new JLabel();
                JLabel param=new JLabel("Param");
                JLabel admin=new JLabel("Admin");
                JPanel panel=new JPanel(new BorderLayout());
                JPanel panel4CheckBoxes;
     
                if (value instanceof DefaultMutableTreeNode) {
                    DefaultMutableTreeNode myNode = (DefaultMutableTreeNode) value;
     
                    if(myNode.isLeaf()) {
     
                        t=(Taxo4CIB4User) myNode.getUserObject();
                        nodeName.setText(t.getTaxonomie());
                        if(t.isIsParametrable())
                            checkBoxParam.setSelected(true);
                        else
                            checkBoxParam.setSelected(false);
                        if(t.isIsAdmin())
                            checkBoxAdmin.setSelected(true);
                        else
                            checkBoxAdmin.setSelected(false);
     
                        panel4CheckBoxes=getPanel4CheckBoxes(checkBoxParam, checkBoxAdmin);
                        panel.add(nodeName, BorderLayout.CENTER);
                        panel.add(panel4CheckBoxes, BorderLayout.EAST);
                    }
                    else {
                        nodeName.setText((String) myNode.getUserObject());
                        if(row==0) {                        
                            panel.add(nodeName, BorderLayout.CENTER);
                            panel.add(getPanel4FirstLine(param, admin), BorderLayout.EAST);                
                        }
                        else {
                            panel.add(nodeName, BorderLayout.CENTER);
                        }
                    }
                }
                return panel;
            }
     
            public Object getCellEditorValue() {
                return t;
            }
     
            private JPanel getPanel4CheckBoxes(JCheckBox checkBoxParam, JCheckBox checkBoxAdmin) {
                JPanel p=new JPanel();
                GroupLayout layout = new GroupLayout(p);        
                layout.setHorizontalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(checkBoxParam))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(checkBoxAdmin))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                );        
                layout.setVerticalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_VERTICAL_GROUP/2)
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(checkBoxParam)
                            .addComponent(checkBoxAdmin))
                );        
                p.setLayout(layout);
     
                return p;
            }
     
            private JPanel getPanel4FirstLine(JLabel param, JLabel admin) {
                JPanel p=new JPanel();
                GroupLayout layout = new GroupLayout(p);        
                layout.setHorizontalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(param))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                        .addGroup(layout.createParallelGroup()
                            .addComponent(admin))
                        .addGap(ComponentDimension.GAP_4_HORIZONTAL_GROUP)
                );        
                layout.setVerticalGroup(
                    layout.createSequentialGroup()
                        .addGap(ComponentDimension.GAP_4_VERTICAL_GROUP+2)
                        .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
                            .addComponent(param)
                            .addComponent(admin))
                );        
                p.setLayout(layout);
     
                return p;
            }
        }
    Voici l'instantiation de mon arbre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    this.treeCIB4Taxo=new JTree(h);
    this.treeCellRenderer=new CheckTreeCellRenderer();
    this.treeCIB4Taxo.setCellRenderer(this.treeCellRenderer);
    this.treeCIB4Taxo.setCellEditor(new CheckBoxNodeEditor());      
    this.treeCIB4Taxo.setEditable(true);
    this.treeCIB4Taxo.setRowHeight(30);
     
    JScrollPane sp_tree = new JScrollPane(this.treeCIB4Taxo);
    Merci.
    Images attachées Images attachées     

Discussions similaires

  1. Probleme avec JCheckBox dans le menu contextuel
    Par Mo_Poly dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 20/03/2007, 22h29
  2. jcheckbox dans une jtable
    Par orelero dans le forum Composants
    Réponses: 6
    Dernier message: 20/05/2006, 02h31
  3. Comment afficher les icones de programme (word..) dans JTree
    Par david06600 dans le forum Composants
    Réponses: 2
    Dernier message: 07/03/2006, 18h50
  4. pb avec un JcheckBox dans un Jtable
    Par hutchuck dans le forum Composants
    Réponses: 4
    Dernier message: 04/11/2005, 10h51
  5. JCheckBox dans un TitledBorder ?
    Par magiline dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 02/12/2004, 17h20

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