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:
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
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)); } } }
Lorsque je sélectionne Jus de tomate, dans la console j'ai: toto
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 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.![]()








Répondre avec citation

Partager