Swing/DoubleClick の変更点
- 追加された行はこの色です。
- 削除された行はこの色です。
- Swing/DoubleClick へ行く。
- Swing/DoubleClick の差分を削除
--- category: swing folder: DoubleClick title: JTableのセルをダブルクリック tags: [JTable, MouseListener] author: aterai pubdate: 2004-06-28T05:48:37+09:00 description: JTableのセルをダブルクリックして内容を表示します。 image: https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTLv3qaXoI/AAAAAAAAAYE/aAnkonlteYo/s800/DoubleClick.png --- * 概要 [#summary] `JTable`のセルをダブルクリックして内容を表示します。 #download(https://lh6.googleusercontent.com/_9Z4BYR88imo/TQTLv3qaXoI/AAAAAAAAAYE/aAnkonlteYo/s800/DoubleClick.png) * サンプルコード [#sourcecode] #code(link){{ table.setAutoCreateRowSorter(true); table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() == 2) { if (e.getClickCount() >= 2) { Point pt = e.getPoint(); int idx = table.rowAtPoint(pt); if (idx >= 0) { int row = table.convertRowIndexToModel(idx); String str = String.format( "%s (%s)", model.getValueAt(row, 1), model.getValueAt(row, 2)); JOptionPane.showMessageDialog( table, str, "title", JOptionPane.INFORMATION_MESSAGE); } } } }); }} * 解説 [#explanation] - `JTable`に`MouseListener`を設定して`MouseEvent#getClickCount()`メソッドでマウスクリック数を取得し、これが`2`になる場合はセルがダブルクリックされたと判断 - `JTable`に`MouseListener`を設定して`MouseEvent#getClickCount()`メソッドでマウスクリック数を取得し、これが`2`以上になる場合はセルがダブルクリックされたと判断 - `JTable`のセルはダブルクリックで編集開始がデフォルトなのですべてのセルを編集不可に設定 * 参考リンク [#reference] - [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/event/MouseEvent.html#getClickCount-- MouseEvent#getClickCount() (Java Platform SE 8)] * コメント [#comment] #comment - 行以外の場所をダブルクリックすると`IndexOutOfBoundsException`が発生する不具合を修正。 -- &user(aterai); &new{2011-02-02 (水) 19:09:18}; #comment