récupération évènement impossible
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:
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 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();
} |
Je l ajoute a ma table avec ce code:
Code:
tableflux.getColumnModel().getColumn(8).setCellEditor(new TableEventComponentFlux(new JComboBox()));
merci