ここから本文です

解決済みのQ&A

D&Dでマウスボタンを離した際にJTableのどのセル上で離されたか知る方法について

toorosiさん

D&Dでマウスボタンを離した際にJTableのどのセル上で離されたか知る方法について

JTable上でマウスのボタンを離した際に(ドラッグ&ドロップ)
JTableのどのセル上でボタンが離されたのか知る方法はありますでしょうか?
ご存知の方がいましたらご教授くださいよろしくお願いいたします。

  • 質問日時:
    2007/10/31 13:38:13
  • 解決日時:
    2007/11/7 01:26:05
  • 閲覧数:
    1,077
    回答数:
    1
  • お礼:
    知恵コイン
    100枚

ベストアンサーに選ばれた回答

taiwan_neko1970さん

http://java.sun.com/docs/books/tutorial/uiswing/examples/dnd/index....
の「Extended DnD Demo Project」が参考になるので、これをベースにして回答します。

TableTransferHandler#importStringメソッドを以下のように変更(差し替え)します。
JTableのインスタンスから、JTable.DropLocationインスタンスを取得して、getColumn、getRow
メソッドを使用することで、ドロップしたセルを知ることができます。

protected void importString(JComponent c, String str) {
JTable target = (JTable)c;

JTable.DropLocation loc = target.getDropLocation(); // ドロップ位置情報取得
System.out.println("Drop Column:" + loc.getColumn()); //ドロップした列番号
System.out.println("Drop Row:" + loc.getRow()); //ドロップした行番号

DefaultTableModel model = (DefaultTableModel)target.getModel();
model.setValueAt(str, loc.getRow(), loc.getColumn());
}

※Java6以上に対応

Q&Aをキーワードで検索:

総合Q&Aランキング

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する