![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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() で判定できます。
No.1
- 回答日時:
ActionListner を JTableに登録しているということでよいのかな?
イベントが発生すると public void actionPerformed(ActionEvent ev) メソッドが呼び出されるが、この引数evには、呼び出し元が記憶されているので、以下のように切り分け可能。
Object src = ev.getSource();
if( src instanceof JTable){
int column_num = ((JTable)src).getSelectedColumn();
switch(column_num){
case 0: /* 1列目のときの処理, 配列添え字と同じく0番開始なので。 */
break;
case 1: /* 2列目のときの処理 */
break;
default : /* その他の列、または どの列も選択されていない時 */
}
}
あと、右クリックか左クリックかの識別を先にしておくことでできるでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Microsoft Edgeの「ニュースと関心事項」についてお聞きします。 3 2023/05/22 12:08
- ノートパソコン 外付けHDDがDからEに変わってしまいました。元に戻したいです。 2 2022/04/04 14:45
- PowerPoint(パワーポイント) パワーポイント アニメーションで挿入したグループを消すことは可能ですか? 2 2022/12/11 05:12
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Windows 8 動画の再生とタイトルの変更方法を教えてください。 3 2022/08/01 14:51
- Excel(エクセル) コントロールにリンクするセルが選択されない 3 2022/06/12 14:37
- Windows 10 Windowsのアイコンの整列が変になりました 2 2022/06/24 00:02
- その他(プログラミング・Web制作) エクセルVBA 3 2022/06/11 16:01
- Windows 10 覚えのないアイコンが釘付けされた 3 2022/04/26 19:47
- その他(パソコン・スマホ・電化製品) Googleカレンダーで不要データを一括削除したい 1 2023/08/02 12:42
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tryの終了
-
Eclipseの終了処理について
-
doGetとdoPostの違い
-
javaのプログラムが止まる
-
「プログラミング」JAVAの...
-
無限ループをわざと作って時計...
-
ラジオボタンの選択判定
-
PHPでDB処理中にプログレスバー...
-
コンパイラとインタプリタとア...
-
データファイルの読み込みについて
-
flush()メソッドについて・・・
-
重い処理中のアニメーションgif...
-
Jquery,JSON,Ajax,PHP連携
-
JSP、サーブレットの初期処理
-
Javaでのデバッグコード削除
-
どうして、長いURLは途中でカッ...
-
数値の定数を付ける時
-
JavaScriptを使ってCSSをプログ...
-
synchronized を施しているのに...
-
サブルーチンってどういうこと?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tryの終了
-
doGetとdoPostの違い
-
Javaプログラムからポップアッ...
-
SwingUtilities.invokeLater(ne...
-
Javaでのデバッグコード削除
-
Tomcat高負荷時の設定について
-
JavaScriptからJAVAクラスを呼...
-
データ未入力時のエラー処理が...
-
アコーディオンメニューをアン...
-
ブラウザを閉じた後のサーバ側...
-
[Java] while(true)の意味
-
数値の定数を付ける時
-
Javaアプリケーション実行の返...
-
ラジオボタンの選択判定
-
onBlurとonFocusの処理順序につ...
-
スレッド1とスレッド2を交互に...
-
WPF C#でF10のイベント取得方法...
-
flush()メソッドについて・・・
-
ExcelVBA で文字列の特定の文字...
-
無限ループをわざと作って時計...
おすすめ情報