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 :

Problème JTable / CheckBox


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut Problème JTable / CheckBox
    Bonjour a tous,

    j'ai de nouveau un problème qui, je pense, est encore une erreur bête de ma part.

    j'ai une JTable avec un certain nombre de donnée et j'aimerai que dans la dernière colonne apparaisse un CheckBox que l'utilisateur pourra modifier comme bon lui semble. seulement voila au lien d'une belle boite a cocher je me retrouve avec un pas beau FALSE a la place voila 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
    String[][] worklist= requeteWorklist();
    						int[][] count = requeteCount(worklist);
     
    						Vector vMain = new Vector();
     
    						if(worklist.length!=count.length){
    							System.out.println("Erreur dans la requetes");
    						}
    						else{
    							for (int i= 0; i<worklist.length; i++){
    								if(count[i][1]!=0){
    									Vector tmp = new Vector();
    									tmp.add(worklist[i][0]);
    									tmp.add(worklist[i][1]);
    									tmp.add(worklist[i][2]);
    									tmp.add(count[i][0]*100/count[i][1]+"%");
    									tmp.add(new Boolean(false));
    									vMain.add(tmp);
     
    								}
    							}
    						}
     
    						Vector header = new Vector();
    						header.add("Identifiant");
    						header.add("Nom des listes de travail");
    						header.add("Operations");
    						header.add("%terminés");
    						header.add("Select?");
    						System.out.println(vMain.size());
    						System.out.println(header.size());
     
    						tableWorklists = new JTable(vMain,header);
    						tableWorklists.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    						tableWorklists.getColumnModel().getColumn(0).setPreferredWidth(100);
    						tableWorklists.getColumnModel().getColumn(1).setPreferredWidth(300);
    						tableWorklists.getColumnModel().getColumn(2).setPreferredWidth(300);
    						tableWorklists.getColumnModel().getColumn(3).setPreferredWidth(100);
    						tableWorklists.setRowHeight(30);
     
    						tableWorklists.setDefaultRenderer(Boolean.class, new AfficheCoche());
     
     
    						JScrollPane js = new JScrollPane(tableWorklists);
    						js.setPreferredSize(new Dimension(800, 800));
    						table.add(js);
    le tableCellRenderer :

    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
    class AfficheCoche implements TableCellRenderer{
     
    				Checkbox coche = new Checkbox();
     
    				public Component getTableCellRendererComponent(
    						JTable table, Object value,
    						boolean isSelected, boolean hasFocus,
    						int row, int column) {
     
    					if((Boolean) value == true)
    						coche.setState(true);
    					else
    						coche.setState(false);
    					if(isSelected == true)
    						coche.setState(true);
    					else
    						coche.setState(false);
     
    					return coche;
    				}
     
    			}
    merci d'avance pour vos réponse qui sont toujours d'une aide précieuse pour les humble petit développeur du dimanche tel que moi ^^

  2. #2
    Membre éclairé Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Par défaut
    Les JTable avec renderder par défaut fournissent déjà les JCheckbox pour les booleéans (des JTextField pour les Strings et y a d'autres renderers par défaut mais normalement pour les booléens y a rien à faire je crois).

    C'était bien la question non? Un cell renderer en JCheckbox pour des booléens?

    (par ailleurs indente correctement ton code la prochaine fois ;-))

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    salut Razgriz,

    Désolé pour l'indentation c'est du copier coller d'eclipse.

    j'ai déjà essayé le "setCellEditor(new DefaultCellEditor(new CheckBox))" qui permet, comme tu l'as dit, de mettre un CheckBox par default dans la JTable, et ceci fonctionne mais le problème c'est que au lieu d'avoir un checkbox qui s'affiche on a la valeur booléen de la checkbox. Moi je voudrai afficher une vrai checkBox ou on voit bien le check.

    tu vois ce que je veux dire?

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Par défaut
    bon je lâches l'affaire j'ai un autre idée merci quand même

  5. #5
    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
    Pas compliqué, le getColumnClass du TableModel doit renvoyer Boolean => affichage d'une CheckBox !

  6. #6
    Membre éclairé Avatar de Razgriz
    Profil pro
    Professeur / chercheur en informatique / mathématiques
    Inscrit en
    Avril 2006
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Professeur / chercheur en informatique / mathématiques

    Informations forums :
    Inscription : Avril 2006
    Messages : 391
    Par défaut
    Si pas dans la javadoc officielle de Sun sur la classe JTable y a un gros lien "How to use JTables"...

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

Discussions similaires

  1. problème contrôle checkbox cliqué ou non
    Par mussara dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/04/2006, 16h16
  2. [ASP3] Problème de checkbox
    Par beegees dans le forum ASP
    Réponses: 2
    Dernier message: 23/03/2006, 16h42
  3. [JTable][CheckBox] CheckboxGroup colonne de JTable
    Par syvid dans le forum Composants
    Réponses: 2
    Dernier message: 02/03/2006, 18h43
  4. [xsl] Probléme De checkbox
    Par dimkha dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/01/2006, 12h09
  5. Problème sur CHECKBOX
    Par dede92 dans le forum Windows
    Réponses: 6
    Dernier message: 22/02/2005, 10h48

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