6

私は経験豊富な Java プログラマーですが、Swing 初心者なので、ご容赦ください。

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

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

これが JPopupMenu の性質に完全に反しているとは信じがたいです。

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

4

2 に答える 2

6

一度行うjpopupMenu.show(Component invoker, int x, int y)と、必要に応じてキーボードに自動的に応答します。これが機能しない場合は、他の問題を修正する必要があるかもしれません。たとえば、他のコンポーネントがメニューからフォーカスを奪ってしまうなどです。

于 2011-12-14T16:08:19.940 に答える
3

Instead of KeyListener, I'd recommend adding Action instances to your JPopupMenu. Use setComponentPopupMenu() to add the popup to your panel.

于 2011-12-14T16:19:24.950 に答える