SWT-Ereignisausbreitung

8

Ich versuche, Klickereignisse auf einem Composite-Steuerelement zu erkennen, das eine Anzahl anderer Composites enthält. Ich habe es versucht:

%Vor%

Aber das Ereignis wird nie ausgelöst. Ich nahm an, dass, wenn ein Mausereignis bei einem Kind auftrat, es sich in der Kette fortpflanzen würde, aber das passiert nicht. Wie mache ich das?

    
bcoughlan 29.08.2011, 03:21
quelle

1 Antwort

11

In SWT besteht die allgemeine Regel darin, dass Ereignisse nicht propagieren. Die hauptsächliche Ausnahme ist die Ausbreitung von Traverse-Ereignissen - was ziemlich kompliziert zu beschreiben ist.

Die einfache Antwort auf Ihr Problem ist, dass Sie den Listener alle die untergeordneten Elemente von Composite - rekursiv hinzufügen müssen!

z. wie das

%Vor%

Das angeklickte Widget befindet sich in e.widget wie oben zu sehen. Ein wichtiges Problem besteht darin, dies zu wiederholen, wenn Sie später weitere Controls hinzufügen.

    
Tonny Madsen 29.08.2011, 06:33
quelle

Tags und Links