私はいくつかのJTableを持つコンポーネントを持っています。テーブルにカスタムのTransferHandlerをインストールしました。現在 JMenuクリップボード関数、アクセラレータ、およびactionMenuのサポートの組み合わせ(ベストプラクティス)
- メニューバー、:さて、私は手段を経由して、これらのテーブル上のカット/コピー/ペーストコマンドを起動したいです現在フォーカスされているJTableで動作する
JTableのactionMapには、すでに "cut"、 "copy"、 "paste"のエントリがあります。これらのキーのアクションは正しいことを行い、TransferHandlerを呼び出します。
私は次のことを試してみた:私は、メニューから「カット」を選択したときに
dataTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(cutMenuItem.getAccelerator(), "cut");
これは私がCMD-Xを押したときに動作しますが、ありません。これは、メニューがイベントを消費し、決してJTableに到達しないためです。
私はこれを実装するいくつかのハックの方法を考えることができますが、それについて行くきれいな方法はありますか?メニュー項目を取得して、現在フォーカスのあるコンポーネントにactionCommand
を送信するにはどうすればよいですか?
CCPの記事(リスナはメモリが漏れていますが、キーボードショートカットはクロスプラットフォームではありません)には夢中ではありませんが、私が望むことを行うには最良の方法です。ありがとう! –