1

複数の JTables を持つコンポーネントがあります。テーブルにカスタム TransferHandlers をインストールしました。ここで、これらのテーブルで切り取り/コピー/貼り付けコマンドを呼び出す手段が必要です。

  1. 現在フォーカスされている JTable で動作するメニューバー
  2. JTables のポップアップ メニュー
  3. 現在フォーカスされている JTable で機能するキーボード ショートカット

JTable の actionMap には、「切り取り」、「コピー」、「貼り付け」のエントリが既にあります。これらのキーに対するアクションは、TransferHandler を呼び出して正しいことを行います。

私は次のことを試しました:

dataTable.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(cutMenuItem.getAccelerator(), "cut");

これは、cmd-X を押すと機能しますが、メニューから「カット」を選択すると機能しません。これは、メニューがイベントを消費し、JTable に到達しないためだと思います。

これを実装するためのいくつかのハックな方法を考えることができますが、それを行うためのクリーンな方法はありますか? actionCommand現在フォーカスされているコンポーネントにメニュー項目を送信するにはどうすればよいですか?

4

1 に答える 1

1

メニュー項目をどのように初期化しているかは明確ではありません。CCPはテキスト コンポーネントの 1 つでJTableないため、メニューの設定に関してテキスト以外のコンポーネントで CCPEditを確認することをお勧めします。

于 2011-07-22T07:00:04.247 に答える