Bonjour,
Je sais plusieurs topique ont déjà était créé à ce sujet, mais je n'arrive pas à les mettre en œuvre. Donc je ré-ouvre un topique dans l'espoir de mieux comprendre.
Comme l'indique le titre, je cherche à afficher une Jcombobox dans une JTable.
Problème, m'a JCombobox évolue constamment, Et surtout, elle est vide au début. Or dans tous les exemples que je vois, la JCombobox est initialisé à l’avance (et Il y a beaucoup de superflue autour de la partie importante, ceux qui m'empêche de bien cerner la partie importante).
Pour l'instant voilà ce que je fais(en résumé):
Initialisation de la table:
le modèle:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 private int nombre_trou=16; private JTable tableau; private String table_titre[]={"Vial","Element Associé"}; ZModel model=new ZModel(new Object[nombre_trou][table_titre.length], table_titre); tableau = new JTable(model);
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 class ZModel extends AbstractTableModel{ /** * */ private static final long serialVersionUID = 1L; private Object[][] data; private String[] title; //Constructeur public ZModel(Object[][] data, String[] title){ this.data = data; this.title = title; } //Retourne le nombre de colonnes public int getColumnCount() { return this.title.length; } //Retourne le nombre de lignes public int getRowCount() { return this.data.length; } //Retourne la valeur à l'emplacement spécifié public Object getValueAt(int row, int col) { return this.data[row][col]; } public String getColumnName(int col) { return this.title[col]; } public void setValueAt(Object arg0, int row, int col) { this.data[row][col]=arg0; fireTableCellUpdated(row, col); } public Class getColumnClass(int col){ //On retourne le type de la cellule à la colonne demandée //On se moque de la ligne puisque les types de données sont les mêmes quelle que soit la ligne //On choisit donc la première ligne return this.data[0][col].getClass(); } //Retourne vrai si la cellule est éditable : celle-ci sera donc éditable public boolean isCellEditable(int row, int col){ return true; } }
l'ajout de la Jcomobox:
Pour l'instant je ne veut pas gérer l'ajout d'Item à ma JCombobox.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private JComboBox<String> JCB=new JComboBox<String>() ; JCB.addItem("Rien"); JCB.addItem("n'importe quoi"); JCB.setSelectedItem("Rien"); //on initialise la 2eme colonne (colonne 1): for(int i=0;i<nombre_trou;i++){ tableau.setValueAt(JCB, i, 1); } tableau.setDefaultRenderer(JComponent.class, new TableComponent()); tableau.getColumn(table_titre[1]).setCellEditor(new DefaultCellEditor(JCB)); }
Je veux juste réussir un affichage simple.
Le bug: quand je click pour changer m'a valeur, sa affiche n'importe quoi:
Merci a tous ceux qui se pencheront sur mon problème.![]()








Répondre avec citation



).
. 
Partager