複数の JTables を持つコンポーネントがあります。テーブルにカスタム TransferHandlers をインストールしました。ここで、これらのテーブルで切り取り/コピー/貼り付けコマンドを呼び出す手段が必要です。
- 現在フォーカスされている JTable で動作するメニューバー
- JTables のポップアップ メニュー
- 現在フォーカスされている JTable で機能するキーボード ショートカット
JTable の actionMap には、「切り取り」、「コピー」、「貼り付け」のエントリが既にあります。これらのキーに対するアクションは、TransferHandler を呼び出して正しいことを行います。
私は次のことを試しました:
dataTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(cutMenuItem.getAccelerator(), "cut");
これは、cmd-X を押すと機能しますが、メニューから「カット」を選択すると機能しません。これは、メニューがイベントを消費し、JTable に到達しないためだと思います。
これを実装するためのいくつかのハックな方法を考えることができますが、それを行うためのクリーンな方法はありますか? actionCommand
現在フォーカスされているコンポーネントにメニュー項目を送信するにはどうすればよいですか?