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 une jtable


Sujet :

Composants Java

  1. #1
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut jcheckbox dans une jtable
    Salut,
    J'essais d'intégrer des cases à cocher dans des tables en créant un model de table qui hérite de AbstractTableModel.
    Le problème est au niveau des méthodes setRowCount et insertRow :
    je ne sais pas comment les implementer sachant que la structure de donnée du tableau se présente sous un tableau de tableau d'objets (Object [][]).
    au cas où:
    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 MyTableModel extends AbstractTableModel
       {
            private String[] columnNames =
            {"Name",
              "Country",
               "Delay",
               "Team",
               " "
            };
            private Object[][] data =
            {
                {"Mary", "fr",
                 "0ms", "fr touch", new Boolean(false)},
                {"Alison", "us",
                 "130ms","america", new Boolean(true)}
            };
      public void insertRow(int i,Object[] newrow)
      {
          data.add(newrow);
          super.fireTableDataChanged();
        }
            public int getColumnCount()
            {
                return columnNames.length;
            }
            public int getRowCount()
            {
                return data.length;
            }
            public String getColumnName(int col)
            {
                return columnNames[col];
            }
            public Object getValueAt(int row, int col)
            {
                return data[row][col];
            }
            public Class getColumnClass(int c)
            {
                return getValueAt(0, c).getClass();
            }
            public boolean isCellEditable(int row, int col)
            {
                if (col < 2)
                {
                    return false;
                }
                else
                {
                    return true;
                }
            }
            public void setValueAt(Object value, int row, int col)
            {
                data[row][col] = value;
                fireTableCellUpdated(row, col);
            }
        }
    Sur google j'ai trouvé pour des listes de tableaux seulement.
    S'il vous plait, aidez moi ! Merci !

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Salut. Tu as beaucoup de chance, j'avais exactement le même problème il y a peu de temps. J'avais eu également l'idée d'utilisé l'AbstractTableModel, et comme toi, j'ai vu ses limites. Il faut tout simplement étendre DefaultTableModel, plutot que AbstractTableModel. Et ensuite, tu surcharge la méthode getColumnClass(int c)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public Class getColumnClass(int c) {
            return getValueAt(0, c).getClass();
        }
    Tu peux la remanier pour l'adapter a ton code. La variable c est la ligne te ta table, et le 0 est la collone. Tu dois pouvoir adapter tout ça.
    Pour ajouter une JCheckBox, tu ne dois pas faire model.add(new Object[]{new JCheckBox("")}); par exemple, mais utilisé des types primitifs, du mois je crois, moi il ma sortit une exception. Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    model.add(new Object[]{new Boolean(false)});
    Cela fera une JCheckBox décocher, le boolean étant false.
    Pour mettre un listener, utilise le listener TableModelListener et agit en conséquence. Bonne chance.

  3. #3
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    okayyy Merci bien !
    Je vais essayer ça.

  4. #4
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    bon j'aurai essayé (j'ai dû claqué 10h à essayer) mais j'y arrive pas...Tant pis Merci quand même

  5. #5
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Qu'est ce qui ne fonctionne pas ? Où es tu bloqué ?

  6. #6
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    désolé Ghost , en fait quand je clique sur la case, la checkbox n'apparait que le temps du click, et autrement c'est la valeur du booleen qui est affichée

  7. #7
    Membre actif Avatar de orelero
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Points : 274
    Points
    274
    Par défaut
    oulà en fait ce que tu m'as dit marche trés bien ... Merci

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

Discussions similaires

  1. Créer une ligne de JCheckBox dans une JTable
    Par Dark_TeToN dans le forum Composants
    Réponses: 5
    Dernier message: 19/10/2010, 15h36
  2. [Jtable] problème de suppression dans une Jtable
    Par gianni17 dans le forum Composants
    Réponses: 1
    Dernier message: 02/12/2005, 19h36
  3. Insertion des boutons et des images dans une JTable
    Par anouar dans le forum Composants
    Réponses: 2
    Dernier message: 17/11/2005, 21h23
  4. pb avec un JcheckBox dans un Jtable
    Par hutchuck dans le forum Composants
    Réponses: 4
    Dernier message: 04/11/2005, 10h51
  5. [JTable] couleur de sélection dans une JTable
    Par spoutyoyo dans le forum Composants
    Réponses: 7
    Dernier message: 06/12/2004, 12h43

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