Bonjour à tous,

J'utilise une Jtable pour faire une liste d'achat.
Je cherche a pré-remplir les champs par défaut en sélectionnant un item d'une combobox.

Presque tous fonctionne, mais je n'ai pas la bonne valeur de la sélection.
A voir la photo liée au message.

Je m'explique:
Lorsque je sélectionne un article et que je valide ça m'affiche l'article précédemment sélectionné.

Voici mon code:
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
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JTable;
 
public class ComboEditor extends DefaultCellEditor {
	JComboBox combo2;
	private ComboBoxListener cListener = new ComboBoxListener();
 
	public ComboEditor(JComboBox combo) {
		super(combo);
		//On crée à nouveau notre bouton
		combo2=combo;
	    //On lui attribue un listener
		combo2.addActionListener(cListener);
		System.out.println("fin");// test
 
	}
 
	public Component getTableCellEditorComponent(JTable table, Object value,
            boolean isSelected, int row, int column) {
		//On définit la valeur de la ligne à notre listener
		cListener.setValue(value);
		//On définit le numéro de ligne à notre listener
		cListener.setRow(row);
		//Idem pour le numéro de colonne
		cListener.setColumn(column);
		//On passe aussi le tableau pour des actions potentielles
		cListener.setTable(table);
		System.out.println("update");// test
 
		return combo2;		
	}
	public class ComboBoxListener implements ActionListener {
		private int column, row;
		private Object value;
		private JTable table;
 
		public void setColumn(int col){this.column = col;}
		public void setRow(int row){this.row = row;}
		public void setTable(JTable table){this.table = table;}
		public void setValue(Object value){this.value = value;}
 
		public void actionPerformed(ActionEvent event) {
			System.out.println("toto"+value);// test
	    	table.setValueAt("New Value 3"+value, this.row, (this.column +1));
	    }
	}
}
Dans la cosole voici ce que j'obtiens:
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
0
fin
update
toto
update
totoJus de tomate
update
totoJus de raisin
update
totoJus de tomate
update
totoSirop
update
totoJus de tomate
update
totoJus de tomate
update
totoJus d'orange
update
totoJus d'abricot
update
totoJus de tomate
update
totoJus d'abricot
update
totoEau 50cl
1
fin
update
toto
update
totoCoca-Cola
update
totoJus de tomate
Lorsque je sélectionne Jus de tomate, dans la console j'ai: toto
Lorsque je sélectionne Jus de raisin, dans la console j'ai: Jus de tomate

Comment supprimer ce décalage.
J'ai regardé du coté du listener du combobox mais ça n'a rien donné.

Merci pour vos idées.