Bonjour,

J'ai créé une classe héritant d' AbstractTableModel pour faire mes jtable mais je n'arrive pas à cocher les checkbox alors que les zones textes contenues dans cette jtable sont bien accessibles en édition.

Voici ma classe et comment je 'appelle
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
 //défini l'header
	    ArrayList<String> header = new ArrayList<String>(
	    	    Arrays.asList("id","Catégorie", "Sélection"));
 
	    Class[] columnTypes = new Class[] {
				String.class,String.class, Boolean.class
			};
	    //crée le modèle utilisé pour jtable
	    final MyTableModel modelCateg = new MyTableModel(movie.getCateg(),header,columnTypes);
 
class MyTableModel extends AbstractTableModel {
 
		//list contanant les données
	    private ArrayList<Object[]> rows;
	    //list contenant l'entete
	    private ArrayList<String> header;
	    //list contenant les types de colonnes
		private Class[] columnTypes;
	    public MyTableModel(ArrayList<Object[]> data,ArrayList<String> header,Class[] colTypes){
	        this.rows = data;
	        this.header = header;
	        this.columnTypes = colTypes;
	    }
	    public void addRow(Object[] row) {
	    	//ici j'ajoute à ma list mais à la fin
	    	rows.add(0,row);
	    	fireTableDataChanged();
	    }
	    public void emptyData(){
	    	this.rows.clear();
	    	fireTableDataChanged();
	    }
 
	    public void setData(ArrayList<Object[]> data){
	    	this.rows.clear();
	    	this.rows = data;
	    	fireTableDataChanged();
	    }
	    @Override
	    public Class<?> getColumnClass(int columnIndex) {
	        return columnTypes[columnIndex];
	    }
	    @Override
	    public int getColumnCount(){
	        return header.size();
	    }
	    public int getRowCount() {
	        return rows.size();
	    }
	    @Override
	    public String getColumnName(int col){
	        return header.get(col).toString();
	    }
	    @Override
	    public Object getValueAt(int row, int col){
	    	return rows.get(row)[col];
	    }
 
	    @Override
	    public boolean isCellEditable(int row, int col){
	    	return true; 
	    }
	}
Comme vous pouvez le voir, je renvoie bien toujours true à isCellEditable

Merci de votre aide