概要

JTableのセルをダブルクリックして内容を表示します。

サンプルコード

table.setAutoCreateRowSorter(true);
table.addMouseListener(new MouseAdapter() {
  @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);
      }
    }
  }
});
view all

解説

上記のサンプルでは、JTableMouseListenerを設定し、マウスでのセルのマウスでダブルクリックイベントを取得しています。各セルはクリックで編集状態になってしまわないように、すべて編集不可にしています。

コメント

  • 行以外の場所をダブルクリックすると、IndexOutOfBoundsExceptionが発生する不具合を修正。 -- aterai