TITLE:JTableのセルをダブルクリック

Posted by terai at 2004-06-28

JTableのセルをダブルクリック

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

  • &jnlp;
  • &jar;
  • &zip;

#screenshot

サンプルコード

table.addMouseListener(new MouseInputAdapter() {
  public void mouseClicked(MouseEvent me) {
    int col = table.columnAtPoint(me.getPoint());
    if(col==0 && me.getClickCount()==2) {
      showInfo(me);
      table.repaint();
    }else{
      super.mouseClicked(me);
    }
  }
});

private void showInfo(final MouseEvent me) {
  EventQueue.invokeLater(new Runnable() {
    public void run() {
      int row = sorter.modelIndex(table.rowAtPoint(me.getPoint()));
      String str = model.getValueAt(row, 1)+"("+model.getValueAt(row, 2)+")";
      JOptionPane.showMessageDialog(MainPanel.this, str, "タイトルバー",
                                    JOptionPane.INFORMATION_MESSAGE);
    }
  });
}

解説

上記のサンプルでは、0列目のセルをマウスでダブルクリックするとダイアログが開くようになっています。このとき、そのセルが編集状態になってしまわないように、編集不可にしておく必要があります。

コメント