• ベストアンサー

どのコンポーネントでクリックされたか知りたい

ngsvxの回答

  • ベストアンサー
  • ngsvx
  • ベストアンサー率49% (157/315)
回答No.2

1.まずJTableにaddMouseListenerでマウスリスナーを登録します。 2.リスナーのmouseClickedイベントでは次のような処理にします。 public void mouseClicked(MouseEvent e){  Object sourceObject = e.getSource();  if(sourceObject instanceof JTable){   //そのプラットフォームのポップアップメニュートリガーイベントであるかどうか   if(e.isPopupTrigger() ){    //イベント発生元のJTable    JTable jtable = (JTable)sourceObject;    //クリックされた座標をPointオブジェクトで取得    Point point = e.getPoint();    //マウスがクリックされた列のインデックスを取得    int columnIndex = jtable.columnAtPoint(point);    //マウスがクリックされた行のインデックスを取得    int rowIndex = jtable.rowAtPoint(point);    //何かの処理   }  } } ・何をしているかわかりやすいように、順を追ったコードにしました。 ・「列」の判定で何かをしたいのであれば、columnIndexを使えば行えます。 ※参考のために「行」の取得も行っています ・マウスボタンの判定はisPopupTrigger()で行っていますが、気に入らなければ  getButton() などで判定してください。 ・ダブルクリックなどクリック数の判定を加えたければgetClickCount() で判定できます。

関連するQ&A

  • JTableで右クリック

    JTableで右クリックしたときに、マウスがあるセルを選択し、 ポップアップメニューを表示したいのですが、どうしたらよいでしょう? JTableは右クリックしても、そのセルを選択できないんでしょうか? 困ってます。回答をお願いします。

    • ベストアンサー
    • Java
  • 右クリック有効にさせる方法?

    リンクや画像を右クリックして、ポップアップメニューを出したいのですが、右クリックを有効にさせる方法はあるのでしょうか??

  • jtreeのノードを右クリックで選択する方法

    JTreeを使ってノードを複数作成し、ノードごとに文字列を入れる。 右クリックを押すとポップアップメニューが表示され、"表示"というメニューアイテムだけ表示される。 メニューアイテムの"表示"を押すとjtreeの下に用意されたjlabelにノードに入れられている文字列が表示される。 といったプログラムを作成しているのですが現在ノードの選択は左クリックでしか行う事ができません。 各ノードの上で右クリックで押すとノードの選択とポップアップの表示を同時に行えるようにしたいのですが どのようにすれば実現できるのかわかりません。 よろしければどなたかご教授お願いします。

    • ベストアンサー
    • Java
  • 右クリックでポップアップメニューを表示したい

    Visual Basic6.0右クリック時にポップアップメニュー(コンテキストメニュー)を表示したいのですが、Webで調べてもよくわかりませんでした。メニューエディタを使って、メニューを作成することはできましたが、フォームの上段に表示されるメニューしか作成できません。MouseUpイベントを使用して右クリックを判別するところまではわかりましたが、肝心のポップアップメニューのメニューの作り方、使用方法をご存知の方いらっしゃいましたらご回答よろしくお願いします。

  • メールを左クリックすると右クリックのメニューが開いてしまいます

    Outlook Expressを使っています。 メールを受信して読む際に、左クリックして読みたいメールを指定すると何故か右クリックのポップアップメニューが開きます。 いつもこのような状態になるわけではありません。 この状態になったときは何度か右クリックを繰り返すと元に戻るのですが、どうしてこんなことになるのかお分かりになる方がいらっしゃいましたら教えていただけないでしょうか? また、解決法がありましたら教えてください。 よろしくお願いします。

  • Sleipnirのタブ部分で右クリック

    Sleipnir version1.61を使っています。 そのタブ部分を右クリックすると、ポップアップメニューが表示されるようになっています。 以前のversionでは、右クリックと同時にタブが閉じられていたと思うのですが。。。 version1.61のSleipnirでも、右クリックだけで閉じるようにする設定はどこかでできるのでしょうか? 知っている方がいましたら、教えてください。

  • コンポーネントの配置

    すみませんコンポーネントの配置でまた困ってます。 一番上にメニューバーを表示させて、 次にツールバーを追加してJTabbedPaneを設置しているんですが、その間にコンボボックスを左にひとつ 右にひとつ設置したいんですがどうやればよいか わかりません(泣 JTabbedPane tabPane = new JTabbedPane(JTabbedPane.TOP , JTabbedPane.SCROLL_TAB_LAYOUT); JEditorPane html = new JEditorPane(); //このコンボボックスをツールバーの下の JEditorPaneとの間に配置したい JComboBox cb1= new JComboBox(choise); JComboBox cb2= new JComboBox(choise); JPanel statusBar = new JPanel(); JLabel statusLabel = new JLabel(); //メニューバーの生成 JMenuBar mb = new JMenuBar(); //メニューの作成 JMenu mn1 = new JMenu("ファイル(F)"); JMenu mn2 = new JMenu("編集(E)"); JMenu mn3 = new JMenu("表示(V)"); //メニューバーにメニューを追加する mb.add(mn1); mb.add(mn2); mb.add(mn3); //フレームにメニューバーを設定 setJMenuBar(mb); //ツールバーの作成 JToolBar tb = new JToolBar(); //ツールバーを固定する tb.setFloatable(false); //ツールバーの追加 getContentPane().add(tb, BorderLayout.NORTH); getContentPane().add(html,rLayout.CENTER); statusBar.add(statusLabel); getContentPane().addstatusBar,BorderLayout.SOUTH); ---------------- 追加で質問なんですがメニューバーに追加している たとえばファイル(F)や編集(E)のような(F) や(E)はALTキーを押しながらFやEを押すと 選択できるんですがこの機能ってswingにも実装できるんでしょうか??  どなたかお願いします!!

    • ベストアンサー
    • Java
  • AUTO CAD2014 右クリックした時のポップ

    右クリックした時に出てくるポップアップ(?)メニューにコマンドを追加したいのですが、 色々な質問を見ていると、「ユーザーインターフェイス」をいじる所までは解ったのですが、 そこからどのカスタムファイルが、右クリックした時のファイルなのかが解りません!! 詳しい方がいましたら教えて下さい。 宜しくお願いしますm(__)m

  • エクスプローラーの右クリックの送りに追加の仕方

    「エクスプローラー」で、ファイルまたはフォルダを右クリックすると、ポップアップメニューが出てきます。この中の「送る」をクリックすると、また、メニューがでてきますが、このメニューにはどのようにして追加登録するのでしょうか?  検索して見ましたが、過去ログには見つかりませんでした。何方かご存知の方が居られましたら、よそしく、ご教授お願いします。m(__)m OSはWindows89です。

  • 右クリックで メニュー削除

    XPです ファイルの上で右クリックすると 私の場合 「開く」「エクスプローラ」「Add to VLC media Playeres」「検索」「Winampで再生」…続く 記憶にない「Add to VLC media Playeres」などのメニューがまだまだあり 断りもなく居座るので正直邪魔です つまり役に立たない存在なんです Web上の右クリックの不要メニューは削除でスッキリしていますが ファイルの右クリックメニューの削除の方法はどうしてもわかりません 教えてください