oliver2202
Messages postés1Date d'inscriptionmardi 4 avril 2006StatutMembreDernière intervention26 juin 2007
-
26 juin 2007 à 10:09
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
26 juin 2007 à 10:17
bonjour à tous,
voila je souhaiterai (comme mon titre le dit) effectuer des actions sur des bouton créer dynamiquement, pour cela je crée un tableau de bouton
<!-- BEGIN TEMPLATE: bbcode_code -->
final Button[] boutonp = new Button[4];
int j=0;
...
boutonp[j] =new Button(composite[j], SWT.CENTER);
boutonp[j].setFont(font);
boutonp[j].setText(" + ");
et qd je fais les actions:
boutonp[j].addListener(SWT.Selection, new Listener(){
publicvoid handleEvent(Event event){
j++;
System.out.println(" bouton "+j+" créer");
filtre[j] = new Composite_Filtre();
filtre[j].createCompoFiltre(composite_zoneW, 1);
composite[j] = new Composite(composite_zoneW, SWT.CENTER);
GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_CENTER);
composite[j].setLayoutData(gridData);
GridLayout griddLayout = new GridLayout();
griddLayout.numColumns = 2;
composite[j].setLayout(griddLayout);
composite[j].setBackground(couleur);
boutonp[j] =new Button(composite[j], SWT.CENTER);
boutonp[j].setFont(font);
boutonp[j].setText(" + ");
....
le truc c'est que l'action ne se fait que quand je clique sur le premier bouton (où j=0) et pas sur les autres ....
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 26 juin 2007 à 10:17
Je te conseille plutôt que de créer x actionListener, d'en créer qu'un seul. Tu définit les name de tes boutons pour les différencier, et dans l'actionListener tu teste le nom du bouton ayant déclancher l'action. Ca donne :
ActionListener action = new ActionListener {
public void actionPerformed(ActionEvent e) {
String name = ((JComponent) e.getSource()).getName();
if (name.equals("toto")) {
// c'est le bouton toto qui a déclencher l'action
}
}
};
JButton btnToto = new JButton();
btnToto.setName("toto");
btnToto.addActionListener(action);