J'ai un problème pour ajouter un Listener à un bouton, l'event handler
de ce bouton ajoutant lui-même un bouton identique avec le même
listener, je ne sais comment me sortire de ce tracas...
le code, schématiquement (c'est du swt) :
final Group c2 = new Group(dialog, SWT.NULL);
[...]
final Button add = new Button(c2, SWT.PUSH);
add.setText("+");
final Listener addListener = new Listener() {
public void handleEvent(Event e) {
[...]
final Button add = new Button(c2, SWT.PUSH);
add.setText("+");
add.addListener(SWT.Selection, addListener);
[...]
}
};
add.addListener(SWT.Selection, addListener);
Eclipse me dit que la variable locale "addListener" peut ne pas avoir
été initialisée (quel toupet))) !
Je ne peux pas redéfinir "addListener" dans cette sous-classe because of
récursivité.
oui, merci, il faut aabsolument que je limite le nombre possible de boutons...
-- yt
Sébastien
Yvon Thoraval wrote:
J'ai un problème pour ajouter un Listener à un bouton, l'event handler de ce bouton ajoutant lui-même un bouton identique avec le même listener, je ne sais comment me sortire de ce tracas...
le code, schématiquement (c'est du swt) :
final Group c2 = new Group(dialog, SWT.NULL); [...] final Button add = new Button(c2, SWT.PUSH); add.setText("+"); final Listener addListener = new Listener() { public void handleEvent(Event e) { [...] final Button add = new Button(c2, SWT.PUSH); add.setText("+"); add.addListener(SWT.Selection, addListener);
remplace addListener par 'this', ça devrait marcher.
pourquoi utilises-tu tout ces 'final' ?
Seb
Yvon Thoraval wrote:
J'ai un problème pour ajouter un Listener à un bouton, l'event handler
de ce bouton ajoutant lui-même un bouton identique avec le même
listener, je ne sais comment me sortire de ce tracas...
le code, schématiquement (c'est du swt) :
final Group c2 = new Group(dialog, SWT.NULL);
[...]
final Button add = new Button(c2, SWT.PUSH);
add.setText("+");
final Listener addListener = new Listener() {
public void handleEvent(Event e) {
[...]
final Button add = new Button(c2, SWT.PUSH);
add.setText("+");
add.addListener(SWT.Selection, addListener);
remplace addListener par 'this', ça devrait marcher.
J'ai un problème pour ajouter un Listener à un bouton, l'event handler de ce bouton ajoutant lui-même un bouton identique avec le même listener, je ne sais comment me sortire de ce tracas...
le code, schématiquement (c'est du swt) :
final Group c2 = new Group(dialog, SWT.NULL); [...] final Button add = new Button(c2, SWT.PUSH); add.setText("+"); final Listener addListener = new Listener() { public void handleEvent(Event e) { [...] final Button add = new Button(c2, SWT.PUSH); add.setText("+"); add.addListener(SWT.Selection, addListener);
remplace addListener par 'this', ça devrait marcher.
pourquoi utilises-tu tout ces 'final' ?
Seb
yvon.thoravalNO-SPAM
Sébastien wrote:
remplace addListener par 'this', ça devrait marcher. ah ok, merci beaucoup !
entre-temps je suis passé à une solution où je n'ajoute + de button +, mais c'est moins élégant, on ne peut guère, après coup, que supprimer les derniers trucs entrés...
pourquoi utilises-tu tout ces 'final' ? Ben le final Group c2 est nécessaire ?
Les autres résultent d'un "bête" copier coller de ce qu'il y a + haut )))
Je dois dire que justement ce matin j'ai cherché sur le net un tuto expliquant, clairement si poss, à quoi sert ce final et quand l'utiliser, mais je n'ai pas, encore, trouvé qqc de suffisamment éclairant pour ma comprenotte...
-- yt
Sébastien <seb@seb.seb> wrote:
remplace addListener par 'this', ça devrait marcher.
ah ok, merci beaucoup !
entre-temps je suis passé à une solution où je n'ajoute + de button +,
mais c'est moins élégant, on ne peut guère, après coup, que supprimer
les derniers trucs entrés...
pourquoi utilises-tu tout ces 'final' ?
Ben le final Group c2 est nécessaire ?
Les autres résultent d'un "bête" copier coller de ce qu'il y a + haut
)))
Je dois dire que justement ce matin j'ai cherché sur le net un tuto
expliquant, clairement si poss, à quoi sert ce final et quand
l'utiliser, mais je n'ai pas, encore, trouvé qqc de suffisamment
éclairant pour ma comprenotte...
remplace addListener par 'this', ça devrait marcher. ah ok, merci beaucoup !
entre-temps je suis passé à une solution où je n'ajoute + de button +, mais c'est moins élégant, on ne peut guère, après coup, que supprimer les derniers trucs entrés...
pourquoi utilises-tu tout ces 'final' ? Ben le final Group c2 est nécessaire ?
Les autres résultent d'un "bête" copier coller de ce qu'il y a + haut )))
Je dois dire que justement ce matin j'ai cherché sur le net un tuto expliquant, clairement si poss, à quoi sert ce final et quand l'utiliser, mais je n'ai pas, encore, trouvé qqc de suffisamment éclairant pour ma comprenotte...
-- yt
yvon.thoravalNO-SPAM
Sébastien wrote:
remplace addListener par 'this', ça devrait marcher.
OK, merci encore, ça ma permis de passer de ce design : <http://cjoint.com/data/lzphvJJ7gx.htm>
à celui-ci : <http://cjoint.com/data/lzpim0r7i6.htm>
reste à peaufiner les Combos un peu étriquées...
-- yt
Sébastien <seb@seb.seb> wrote:
remplace addListener par 'this', ça devrait marcher.
OK, merci encore, ça ma permis de passer de ce design :
<http://cjoint.com/data/lzphvJJ7gx.htm>
à celui-ci :
<http://cjoint.com/data/lzpim0r7i6.htm>