- - PR -
KeyEventが受け取れない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-05-03 04:51
Eclipse 3.1.0
jdk1.5.0_02 こんにちわ。上の環境にてJFrame内にJMenuBarとJPanelをいくつか配置した簡単なアプリケーションを作っています。 ここでJFrameにKeyListenerをaddしたのですが全くeventを受け取りません。 同じ部分でaddしたWindowListenerは動いています。 試しにMouseListenerをaddしてみたところこれも動きません。 他にKeyEventを受け取るのはJMenuItemですが、コメントアウトした所関係ない模様。 どなたか心辺りの事ございましたら、教えていただけないでしょうか。 | ||||
|
投稿日時: 2005-05-03 14:11
以下のソースで試してみたところ、キーイベントは取れました。
キーイベントは、直接JFrameに渡されるのではなく、 最初にフォーカスのある子コンポーネントに渡されて処理されます。 そのコンポーネントがキーイベントを処理しないのであれば、 その親コンポーネントに渡されます。 誰も処理しなければ順次伝播していき、最後にJFrameに渡されます。 例えば、JFrameだけならば、キーイベントは受け取れます。 しかし、以下のコメントを外すと、JTextAreaがキーイベントをすべて処理するので、 親のJFrameまではイベントが渡ってきません。 おそらく、キーイベントを処理しているコンポーネントがどこかにいるのでしょう。 | ||||
|
投稿日時: 2005-05-03 19:26
ご指摘の通り子コンポーネントのJTextAreaがEventを処理していました。
setEditableをfalseにしていたこともあって思い当たりませんでした。 初歩的な質問をしてしまって申し訳ありません。 お答え頂きありがとうございました。 |
1