子コンポーネントでタブを入力すると次のコンポーネントにフォーカスが移ってしまうからその子コンポーネントではイベントが受け取れないらしい。JavaのチュートリアルにあるHow to Write a Key Listenerのところを見ると
とすることで次のコンポーネントにフォーカスが移らずにKeyEventが発生してタブ文字の入力を受け取れるとのこと。これで一歩テキストエディタの完成に近づいた(完成まで後9999歩ぐらい)
component.setFocusTraversalKeysEnabled(fasle);