Bonjour, aprés avoir regardé un peu partout sur le net, je me tourne vers vous car je ne trouve pas la solution à mon problème.

voici la fonction que j'ai écrite. Elle initilaise un tableau avec une checkbox dans la premiere case et une description dans la seconde

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
114
115
116
117
118
119
120
121
122
123
124
 
/**
         * Créer et initialise le tableau resultat
         * chaque ligne sera composé d'une boite à coché et d'une description sommaire du poste
         * @param result les resultats de la requete
         * @param duree la durée d'un stage
         * @param panelPrincipal le panel auquel il faut ajouter le tableau
         */
	private void initTableResult(ResultSet result, String duree, JPanel panelPrincipal) {
		// TODO Auto-generated method stub
		//on créé un nouveau panel qui contiendra une checkbox et le tableau
		JPanel pTableau = new JPanel(new GridLayout(2,0));
 
		//calcul du nombre de resultat pour definir le nombre de ligne
		int NbrResult = 0;
		try {
			//on ce positionne à la derniere ligne
			result.last();
			NbrResult = result.getRow();
 
			//on ce remet avant la premiere ligne
			result.beforeFirst();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
		//attribut de la table
		String[] columName = {"Selectioner","Descriptoin"};
		Object [][] data = new Object[NbrResult][2];
 
		//vecteur de checkbox pour pouvoir y acceder ulterieurement
		final Vector<JCheckBox> vCheck = new Vector<JCheckBox>();
 
		//la premier checkbox sert à selectioner toutes les autres.
		final JCheckBox totalcheck = new JCheckBox("Tout selectionner");
 
		//on lui met un action listener
		totalcheck.addActionListener(new ActionListener(){
 
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				//si on coche la checkbox on coche toutes les autres
				if(totalcheck.isSelected())
					for(int i = 0;i < vCheck.size();++i)
						vCheck.get(i).setSelected(true);
				//sinon on les decoches
				if (!totalcheck.isSelected())
					for(int i = 0;i < vCheck.size();++i)
						vCheck.get(i).setSelected(false);
 
			}//action performed
 
		});//actionlistener
		//on met les bonne couleur a la checkbox
		totalcheck.setBackground(Color.white);
		totalcheck.setForeground(Color.blue);
		//on ajoute la checkbox
 
		//boucle de remplissage du tableau
		pTableau.add(totalcheck);
 
		//pour calculer le nbr de jour entre 2 dates
		long MILLISECONDE_PER_DAY = 1000 * 60 * 60 * 24;
		try {
			int row = 0;//compteur de ligne
			while(result.next()){
				//avant d'ajouter un poste on verifie si la duréé correspond
				//si la durée n'est pas nulle on la met sous forme d'entier
				long dureelong = 0;
				if (!(duree == null)){
					for(int i = 0; i < duree.length(); ++i)
						dureelong = dureelong*10 + (duree.charAt(i) - '0');
				//on extrait les dates de debut et fin
				Date datedeb = result.getDate(12);
				Date datefin = result.getDate(13);
 
				long diff = datefin.getTime() - datedeb.getTime();
				long dureeStageDay = diff/MILLISECONDE_PER_DAY;
 
				//si la durée de stage ne correspond pas on ne met pas le resultat
				if (dureelong != dureeStageDay)continue;
				}
 
				//création d'une checkbox
				JCheckBox check = new JCheckBox();
 
				//on met une check box dans la premiere colonne
				data[row][0] = check;
				vCheck.add(check);
 
				//recherche des noms de commune
				//ouverture d'une connection
				ConnectionAcess conn = new ConnectionAcess();
				Statement stm = conn.conn.createStatement();
				ResultSet comm = stm.executeQuery("select NomCommune into Commune where CodePostal = '" + result.getString(4) + "';");
				//dans la deuxieme colonne on met les infos interessantes
				data[row][1] =  "Poste : "+ result.getString(9) +
						" Secteur : "+ result.getString(3)
						+ " Commune : "+ comm.getString(1)
						+ "Date : du " + result.getString(12) + " au " + result.getString(13);
 
			}//boucle remplissage
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//création de la table
		JTable tableResult = new JTable(data,columName);
 
		JScrollPane scroll = new JScrollPane(tableResult);
		scroll.setSize(20,20);
		scroll.setAutoscrolls(true);
 
		//on ajoute le tableau au panel
		pTableau.add(scroll);
 
		//ajout à la fenetre
		panelPrincipal.add(pTableau);
 
 
 
	}
Mon soucie est que si j'utilise comme le suggère la plus part des solutions que j'ai lus les lignes de code qui suivent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
TableColumn col= tableResult.getColumnModel().getColumn(0);
 col.setCellEditor(new DefaultCellEditor(new JCheckBox()));
j'ai 2 problème. Le premier c'est qu'il y a écrit true dans la premiere colonne au lieu d'avoir une checkbox et le second c'est que la check box qui me sert à cocher toutes les autres ne sert plus a rien.

3eme problème, avec le code actuel rien ne s'affiche dans mon tableau j'ai des lignes vides.

merci

Ogtraba