With help of JXLayer you can easily decorate your compound components and catch all Mouse, Keyboard and FocusEvent for all its subcomponents. JXLayer is very friendly to your applications, it uses only public Swing API and doesn't change any global settings like RepaintManager, EventQueue or frame's glassPane. It neither add AWTEventListener to AWT's toolkit.