ポップアップメニューにテーブルのデータを送る

備忘録:Java ポップアップメニューに右クリックしたセルのデータを送る
1. 前に書いたJAVA メニューを観るか、JPopupMenuクラスを参考にする。
Java1.5以降なら「setComponentPopupMenu()」の方が楽かな。
どこでもとびだすポップアップメニュー JPopupMenu
2. 対象のJTableに設定したマウスリスナ内で下記のような処理を追加


public void mousePressed(MouseEvent me){
 showPopup(me);
}
//うちの環境(XP)だとこっちじゃないと反応しなかったような…
public void mouseReleased(MouseEvent me){
 showPopup(me);
}
private void showPopup(MouseEvent me){
 if (me.isPopupTrigger()) {
  int row = -1;
  int column = -1;
  Point mousePoint = new Point(me.getX(), me.getY());
  JTable table = (JTable)me.getSource();//イベントの発生源を取得
  row =table.rowAtPoint(mousePoint);//Pointからrow取得
  column =table.columnAtPoint(mousePoint);//Pointからcolumn取得
   if(row != -1 && column != -1){//rowとcolumnを取得出来ていれば
    //tableのtablemodelから値取得
    tempText = table.getModel().getValueAt(row,column).toString();
    System.out.println(tempText);
   }
 }
}

実際に使ってるコードを改変したものなので、もしかしたらなんかエラーを含んでいるかも(w


流れとしては

マウスリスナで右クリックされたポイント取得
         ↓
ポイントクラスに入れる。tableを操作できるように取得
         ↓
ポイントからtable上のrow,columnを取得
         ↓
tableから取得したtablemodelからgetValueAt(row,column)

という感じで。一応これで動いているのでよしとする(・∀・)