2011-12-14 10 views
6

私は経験豊富なJavaプログラマですが、Swingの初心者ですので、私に同行してください。JPopupMenuのフォーカスを取得する方法

JPopupWindowをキーボードフォーカスにしたいと考えています。私は矢印キー、エスケープ(メニューを閉じる)、Enter(項目を呼び出す)に応答したい。私はKeyListenerをメニューに追加しなければならず、このすべてを自分でコーディングしなければなりません。あるいは、標準でなければならないようなこの動作を有効にするために設定できる何らかの「モード」があります。

JPopupMenusの標準的なスイングチュートリアルのセクションでは、ニーモニックとアクセラレータについてのみ説明しています。私は特にそれらを望んでいない。

これはJPopupMenuのグレインに完全に当てはまるとは考えにくいです。

私は実装したいと思うようなものを得るための最良の方法は何ですか?

答えて

6

jpopupMenu.show(Component invoker, int x, int y)を実行すると、自動的にキーボードに応答します。これが機能していないなら、あなたはいくつかの他の成分すなわち他のいくつかの問題を解決する必要がある可能性がある場合、それはすべきではないなどのメニューからフォーカスを離れひったくりさ

+0

hmm。私はshowVisible(true)ではなくshowVisible()を使用していましたが、setVisible()/ –

+0

を使用してshow()を使用しなくなりました。私のコード。混乱させて申し訳ありません。 –

+0

それは答えです。私は適切にコンポーネントに縛られていませんでした。ゴミ箱の返事もそれを行うために必要でした。お二人のおかげです。 –

3

代わりKeyListenerの、私はあなたのJPopupMenuActionインスタンスを追加することをお勧めしたいです。 setComponentPopupMenu()を使用してポップアップをパネルに追加します。

+1

ありがとう、あなたの入力は、上記のAKJと一緒に、この作業を得ました。 –

+0

優秀;参考までに、最近更新された例[here](http://stackoverflow.com/a/5129757/230513)があります。 – trashgod

関連する問題