JTable と、各行に固有のポップアップ メニューがあります。ユーザーがマウス (Windows L&F) を右クリックしてポップアップ メニューを表示した行を計算したいと考えています。
テーブルの MouseListener を作成して、クリック時に MouseEvent を取得し、正しい場所にポップアップ メニューを表示します。しかし、ユーザーがポップアップ メニューから 1 つの項目を選択すると、ユーザーが最初に右クリックした行が何であったかを判断する方法がわかりません。ポップアップ メニュー呼び出しのイベントには、右クリックが行われた場所の x、y 座標がありません。
ポップアップの位置を取得することを見てきましたが、それはテーブルではなくフレームに属しているため、それもその親も、必要な正しい x、y 値を持っていません。
JPopupMenu をサブクラス化し、MouseListener に必要な x 値と y 値を設定することで、この問題を回避しました。しかし、これは JTable にポップアップ メニューを配置したい人にとって一般的な問題であるように思えます。
これを行う簡単な方法、特に JPopupMenu のサブクラス化を伴わない方法はありますか?