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 :

Panel dans JTable (CellEditor)


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut Panel dans JTable (CellEditor)
    Alors,

    J'ai un panel dans une JTable ... déjà bon point j'arrive à l'afficher (ca m'a quand meme pris 1h ...) donc cellrenderer ca va .. mais voila maintenant j'aimerais pouvoir ecouter ... que faut t'il faire pour que mon panel puisse avoir le meme comportement que si il n'etait pas dans un JTable (entendre "normalement" les evenements)

    Je suppose que la solution est dans le cellEditor mais j'avoue que je ne vois pas trop comment .. si vous avez soit un bout de code soit un bon tutorial ^^ Merci d'avance !

  2. #2
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Personne ??? je suis légéremment coincé la !

  3. #3
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    le Cellrenderer est un composant qui sert comme "image" pour mettre dans la cellule.

    Quand tu viens cliquer dessus ca active le celleditor correspondant.

    donc si tu veux ecouter comme un panneau normal ta cellule tu place un ecouteur sur les composant du celleditor et pas du cellrenderer.

  4. #4
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par eclesia
    le Cellrenderer est un composant qui sert comme "image" pour mettre dans la cellule.

    Quand tu viens cliquer dessus ca active le celleditor correspondant.

    donc si tu veux ecouter comme un panneau normal ta cellule tu place un ecouteur sur les composant du celleditor et pas du cellrenderer.
    Oui ca je me doutais mais comme je dit je ne vois pas trop comment ... l'utilisation du cellEditor m'est obscur. ^^

  5. #5
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    exemple de celleditor :
    (il est un peu particulier)
    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
     
    public class DBTableCellEditor extends AbstractCellEditor implements TableCellEditor {
     
        private int critere = 1;
        private JComboBox box = new JComboBox();
     
        /** Creates a new instance of DBTableCellEditor */
        public DBTableCellEditor(int critere) {
            super();
            this.critere = critere;
        }
     
        public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
            DBTableStruct struct = (DBTableStruct)value;
     
            box.removeAllItems();
     
            for(int i=0;i<struct.champs.size(); i++){
                box.addItem(struct.champs.get(i));
            }
     
            box.setSelectedIndex( (critere == 1) ? struct.critere1 : struct.critere2);
     
     
     
            return box;
        }
     
        public Object getCellEditorValue() {
            return box.getSelectedIndex();
        }
     
     
    }
    dans le cas ci dessus, il faudrait placer ton ecouteur sur le JComboBox.

  6. #6
    Membre éprouvé Avatar de Lady
    Femme Profil pro
    Développeur Java
    Inscrit en
    Mars 2003
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2003
    Messages : 678
    Par défaut
    Citation Envoyé par eclesia
    exemple de celleditor :
    (il est un peu particulier)
    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
     
    public class DBTableCellEditor extends AbstractCellEditor implements TableCellEditor {
     
        private int critere = 1;
        private JComboBox box = new JComboBox();
     
        /** Creates a new instance of DBTableCellEditor */
        public DBTableCellEditor(int critere) {
            super();
            this.critere = critere;
        }
     
        public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
            DBTableStruct struct = (DBTableStruct)value;
     
            box.removeAllItems();
     
            for(int i=0;i<struct.champs.size(); i++){
                box.addItem(struct.champs.get(i));
            }
     
            box.setSelectedIndex( (critere == 1) ? struct.critere1 : struct.critere2);
     
     
     
            return box;
        }
     
        public Object getCellEditorValue() {
            return box.getSelectedIndex();
        }
     
     
    }
    dans le cas ci dessus, il faudrait placer ton ecouteur sur le JComboBox.

    alors pour getTableCellEditorComponent je renvoie le JPanel ?

    et pour getCellEditorValue() ? (j'ai plusieurs ecouteurs) mon panel contiens deux JCHeckBox ...

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

Discussions similaires

  1. Rafraîchissement du panel dans la JTable
    Par Toutfic dans le forum Composants
    Réponses: 8
    Dernier message: 04/03/2007, 22h20
  2. [AWT]Changement de panel dans un panel
    Par guipom dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 27/12/2004, 15h57
  3. Des Panels dans un jScrollPane
    Par cantabile dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 07/08/2004, 12h20
  4. Selection listener dans JTable
    Par calypso dans le forum Composants
    Réponses: 3
    Dernier message: 02/08/2004, 17h56
  5. Comment copier un Panel dans la PressePapier
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 19/04/2004, 16h45

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