Unfortunately, controlling who is on top is not portable. On the other hand, you can have the Container insert a small amount of code into its handleEvent method. So you can drag very small Icons while moving the mouse quickly. You can drag over the top of other Icons reliably. The user would have to write custom Container subclasses in such a case.
Maintenance is more difficult since code is required in multiple classes.
You still cannot drag over the top of arbitrary Components. If the Component is looking for a mouse drag event and is on top, it will get the event and may never pass it on to the Container. So care must be taken when using Icons with other custom Components that make use of mouseDrag. If instead you want the Icon to handle its own mouse events, simply set the Icon's ignoreEvents variable to false . Do not mix these two modes in a single program.