i understand the need for the focus managment; but there is no reason why the KeyEvent can't be delivered to processKeyEvent as well as being processed by the focus manager.
The reason that comes to mind is that if you have a text component and someone hits TAB you want to EITHER type a tab character into the components document, OR move focus.
If the TAB is added to the document AND the focus changes that is obviously a problem.
In other words you don't want the one key press to do two unrelated things (e.g. bring up a chat window in your game and move focus to your QUIT button.)
Sure there might be other ways to solve this, but they could just complicate things even more.
P.S. I LOVE Swing (heavy)