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] Modification d'une checkbox


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut [JTable] Modification d'une checkbox
    Bonjour,

    j'ai un problème pour modifier la valeur d'une check box dans une JTable. Je sais que je dois utiliser la méthode setValueAt de mon tableModele : je devrai faire
    data[row][col]=value mais le probleme est que dans mon tableModel, je n'ai pas de tableau à deux dimensions.

    voici mon tableModele:

    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
    public class TableModelPrestaAValider extends AbstractTableModel {
     
    	private String[] cols= {"Numéro","Société","Date","Contrat","Projet","Intervention"};
    	private List<Prestation> rows ;	
     
     
    	public TableModelPrestaAValider(List<Prestation> r){
    		super();
    		rows=r;
    	}
     
    	public String getColumnName(int col){
    		return cols[col];
    	}	
     
    	public int getRowCount(){
    		return rows.size();
    	}
     
    	public int getColumnCount() {
    		return cols.length;
    	}
     
    	public Object getValueAt(int row,int column) {
     
    		switch(column){
    		case 0:
    			return rows.get(row).getIdPresta();
    		case 1:
    			return rows.get(row).getClient().getSociete();
    		case 2:
    			return DateHeure.calendarDateEnString(rows.get(row).getDateJour());
    		case 3:
    			if(rows.get(row).getContrat()==null)
    				return new Boolean(false);
    			else
    				return new Boolean(true);
    		case 4:
    			if(rows.get(row).getProjet()==null)
    				return new Boolean(false);
    			else
    				return new Boolean(true);
    		case 5:
    			if(rows.get(row).getHc()==null)
    				return new Boolean(false);
    			else
    				return new Boolean(true);
    		}		
    		return null;
    	}
     
    	public void setData(List<Prestation> prestas){
    		this.rows = prestas;
    		super.fireTableDataChanged();
    	}
        public Class getColumnClass(int c) {
            return getValueAt(0, c).getClass();
        }
        public boolean isCellEditable(int row, int col) {
            if (col>2)
                return true;
            else 
                return false;
        }
    Quelqu'un aurait il une solution à me proposer?

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Le setValueAt c'est le contraire du getValueAt...

    Vulgairement =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public void setValueAt(Object value, int row,int column) {
     
    		switch(column){
    		case 0:
    			return rows.get(row).setIdPresta((int) value);
    		case 1:
    			return rows.get(row).getClient().setSociete((Societe) value);
    		// etc...
    		return null;
    	}

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut
    Le problème c'est que ce sont les 3 dernières colonnes que je veux modifier (3,4,5) qui sont en fait des check box mais ces check box ne sont enregistrées nulle part donc je sais pas très bien comment faire.

  4. #4
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void setValueAt(Object value, int row,int column) {
    Dans le cas de tes colonnes booléennes, value sera un Boolean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Boolean valeur = (Boolean) value;

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    La CheckBox est juste un renderer pour un booléen. Tu n'as donc pas à t'occuper des CheckBox.
    Il te suffit de modifier les valeurs booléennes des cellules, c'est tout.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut
    je sais que je dois modifier les valeurs booléennes des cellules mais justement, je ne sais pas comment. Si tu pouvais m'aider, cela serait très sympa.

  7. #7
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Citation Envoyé par aileen Voir le message
    je sais que je dois modifier les valeurs booléennes des cellules mais justement, je ne sais pas comment. Si tu pouvais m'aider, cela serait très sympa.
    Je viens de le dire........

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/03/2011, 18h29
  2. modification d'une cellule d'une JTable
    Par ballantine's dans le forum Composants
    Réponses: 8
    Dernier message: 08/01/2010, 11h42
  3. Modification d'une ligne d'un datagridview via checkbox
    Par DiamonDonald dans le forum Windows Forms
    Réponses: 7
    Dernier message: 08/04/2008, 23h42
  4. Ajout et modification d'une checkbox
    Par Tintou dans le forum VBA Word
    Réponses: 12
    Dernier message: 09/10/2007, 12h57
  5. [JTABLE]changer le statut d'une checkbox
    Par zozolh2 dans le forum Composants
    Réponses: 3
    Dernier message: 12/09/2006, 15h09

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