1 pièce(s) jointe(s)
Afficher la JCombobox dans la JTable
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:
Code:
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); |
le modèle:
Code:
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:
Code:
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));
} |
Pour l'instant je ne veut pas gérer l'ajout d'Item à ma JCombobox.
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.:ccool: