イベントの透過

現在Swingを学習中なのだが、あるコンポーネント(GlassPaneとか)でイベントを拾いつつも、さらにその下のコンポーネントにイベントを透過する方法が、調べても調べてもよくわからなかった。

が、ようやく正解らしきものにたどりついたようなので、メモっておく。

A well-behaved GlassPane
http://weblogs.java.net/blog/alexfromsun/archive/2006/09/a_wellbehaved_g.html

表題はガラスペインだが、コードを見る限りガラスペインに限定されたテクニックではない。
要するに、イベントを透過させたいコンポーネントについては、通常のリスナーではなく、AWTEventListenerでこっそり「覗き見」すればいいらしい。ただし、イベントは何でも拾うので、対象としたいイベントかどうかを識別するには多少手間がかかるようだ。