• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:JTableのセルをダブルクリック
#navi(../)
RIGHT:Posted by [[aterai]] at 2004-06-28
RIGHT:Posted by &author(aterai); at 2004-06-28
*JTableのセルをダブルクリック [#h86d20ad]
JTableのセルをダブルクリックして内容を表示します。

-&jnlp;
-&jar;
-&zip;

//#screenshot
#ref(http://lh6.ggpht.com/_9Z4BYR88imo/TQTLv3qaXoI/AAAAAAAAAYE/aAnkonlteYo/s800/DoubleClick.png)

**サンプルコード [#t2033b2b]
#code{{
#code(link){{
table.setAutoCreateRowSorter(true);
table.addMouseListener(new MouseAdapter() {
  @Override public void mouseClicked(final MouseEvent me) {
  @Override public void mouseClicked(MouseEvent me) {
    if(me.getClickCount()==2) {
      Point pt = me.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);
      }
    }
  }
});
}}

**解説 [#h9a084b1]
上記のサンプルでは、セルをマウスでダブルクリックするとダイアログが開くようになっています。各セルはクリックで編集状態になってしまわないように、すべて編集不可にしています。

//**参考リンク
**コメント [#b0c89640]
- 行以外の場所をダブルクリックすると、IndexOutOfBoundsExceptionが発生する不具合を修正。 -- [[aterai]] &new{2011-02-02 (水) 19:09:18};

#comment