Bonjour à tous,

avant de de commencer je tiens à m'excuser car je sais que ce sujet à été traiter des centaines de fois mais je n'arrive vraiment pas à mettre une JComboBox dans une JTable, et ce malgrè la documentation disponible sur le net.

Je construit ma JTable avec un tableModel.Voila ce que j'ai fait:

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
 
class MonModele extends AbstractTableModel {
            Vector nomColonne=new Vector(); //les noms de colonnes
            Vector elementUn = new Vector();
 
            public MonModele(String taxo,String onglet,String libelle,String Contextref) {
                nomColonne.addElement("Compte");
                nomColonne.addElement("Actif");
                nomColonne.addElement("Operateur");
                String StrSQL;
                StrSQL ="SELECT COMPTE,ACTIF FROM MAPPING WHERE TAXONOMIE='"+taxo+"' AND GABARIT='"+onglet+"' AND ELEMENTNAME='"+libelle+"'  AND CONTEXTREF='"+Contextref+"'";
                try{
                    Database connect=new Database();
                    connect.OpenDB();
                    ResultSet rs=connect.Execute(StrSQL);
 
                    while (rs.next()){
 
                        elementUn.addElement(rs.getString("COMPTE"));
                        if (rs.getString("ACTIF").equals("Y")){
                            elementUn.addElement(new Boolean(true));
                        }
                        else{
                            elementUn.addElement(new Boolean(false));
                        }
 
                        JComboBox operateur;
                        operateur=new JComboBox();
                        operateur.addItem("+");
                        operateur.addItem("-");
                        elementUn.addElement(operateur);
 
                    }
                }
                catch (Exception E){
                    JOptionPane.showMessageDialog(null, "Impossible de se connecter à cette BD" +
                    "Erreur " + E.getMessage(), "alert", JOptionPane.ERROR_MESSAGE);
                }
            }
 
            public int getColumnCount() {
            return nomColonne.size();
             }
 
             public int getRowCount() {
              return elementUn.size()/getColumnCount();
             }
 
             public String getColumnName(int columnIndex) {
              String colName="";
              if (columnIndex<=getColumnCount())
                colName=(String)nomColonne.elementAt(columnIndex);
                return colName;
             }
 
             public Class getColumnClass(int column){
                return getValueAt(0, column).getClass();
             }
 
             public boolean isCellEditable(int rowIndex, int columnIndex) {
              return false;
             }
 
             public Object getValueAt(int rowIndex, int columnIndex) {
              return elementUn.elementAt(
                       (rowIndex*getColumnCount())+columnIndex);
             }
 
             public void setColumnName(Vector colNames){
                    //columnNames=new Vector(colNames.length);
                    nomColonne=colNames;
                     fireTableStructureChanged();
            }
 
            public void removeRow(int row) {
                elementUn.removeElementAt(row);
                fireTableRowsDeleted(row, row);
            }
        }
Voila comment j'affecte mon model à ma table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
jTable1=new JTable();
MonModele model =new MonModele( taxo, onglet, libelle, Contextref);
jTable1.setModel(model);
jTable1.createDefaultColumnsFromModel();
jTable1.getTableHeader().setReorderingAllowed(false);

Et bien entendu, dans ma cellule ça m'affiche Javax.swing.JComboBox...

Il y a quelquechose qui m'échappe, si quelqu'un pouvait m'expliquer le fonctionnement, ça me débloquerai pas mal!

Merci d'avance!

EDIT: Je suis bien sur allé voir la javadoc et j'ai rajout ce petit bout de code mais sans succés:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
TableColumn cH = jTable1.getColumnModel().getColumn(2);
            JComboBox operateur;
            operateur=new JComboBox();
            operateur.addItem("+");
            operateur.addItem("-");
            TableCellEditor  cellEditorRv0 = new DefaultCellEditor (operateur);
            cH.setCellEditor(cellEditorRv0);