bonjour,
Dans ma class editor j ai bien implémenté mon actionlistener ou itemlistener mais je n ai pas de réaction de ma combo , je ne vois pas ou est le problème voici mon code:
Je l ajoute a ma table avec ce 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
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
80
81
82
83
84
85
86
87
88
89
90
91
92 package Model; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.JTable; public class TableEventComponentFlux extends DefaultCellEditor { /** * */ private static final long serialVersionUID = 1L; private ComboListener cListener = new ComboListener(); public TableEventComponentFlux(JComboBox comboBox){ super( comboBox); comboBox.addItemListener(cListener);//test1 comboBox.addActionListener(cListener);//tes2 } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { JComboBox combo = new JComboBox(); for(int i = 0 ; i < 10 ; i++) combo .addItem(i); return combo; } public static class ComboListener implements ItemListener, ActionListener{ private int row; private int column; private JComboBox combo; private String name; private String nameserver; private static JTable table; public void setColumn(int col){this.column = col;} public void setRow(int row){this.row = row;} public void setTable(JTable table){ComboListener.table = table;} public JComboBox getCombo(){return this.combo;} public void actionPerformed(ActionEvent event) { System.out.println(((JComboBox)event.getSource()).getSelectedItem()); } @Override public void itemStateChanged(ItemEvent arg0) { // TODO Auto-generated method stub System.out.println("test"); } } //Permet de dire à notre tableau qu'une valeur a changé //à l'emplacement déterminé par les valeur passée en paramètre //((AbstractTableModel)onglet1.getTableflux().getModel()).fireTableDataChanged(); //((AbstractTableModel)table.getModel()).fireTableDataChanged(); }
merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part tableflux.getColumnModel().getColumn(8).setCellEditor(new TableEventComponentFlux(new JComboBox()));
Partager