Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

重なり合ったオブジェクトのイベントリスナーの受取について

いつもお世話になっております。
いろいろググったりしてみたのですが、
上手い実現方法が思いつかないので、質問させてください。

アプレットのどの地点にフォーカスがいる場合でも、
KeyPrressedイベントを取得したいのですが、
アプレット(this)にキーリスナーを登録しても、
キーイベントが取得できません。
取得できない理由は、アプレットに配置している、
パネルやテキストボックス、ボタン等がフォーカスを、
得ているためのようです。

つまり、
もしアプレット全体でキーイベントを取得したいのであれば、
アプレットに配置していて、もっとも前面にあるオブジェクト全てにキーリスナーを登録してやらなければならないということなのでしょうか?

こういったアプレット全体でキーイベントを取得するという需要は、結構あると思うのですが、その場合、どのような実現方法がベターなのでしょうか。

VBではフォームのキーイベントを取得した場合、
フォーム上に配置したテキストボックス等でも、
フォームのキーイベントが取得できると思います。
(取得順等はありますが)

これを、アプレットで実現する場合、
どういったやり方が一般的なのでしょうか。

#今は、フォーカスを受け取るであろうパネルにリスナーを登録し、そのパネルがクリックされた時点でrequestFocusでフォーカスをセットし、キーイベントが受け取れるようにしています。

1

回答

4473

閲覧

1件の回答

評価

0

イベントオブジェクトを作って、アプレットのdispatchEventへ投げるとか。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。