Java面试题大全
在Swing里,JTable控件如何添加右键点击事件支持?

以下为部分代码节选,具体应用请参考《项目实战篇》之“图书数据管理"项目

1 默认 JTable 已经打开了 MOUSE_EVENT_MASK ,所以下面的enableEvents()可以省掉

// enableEvents(MouseEvent.MOUSE_EVENT_MASK |MouseEvent.MOUSE_MOTION_EVENT_MASK );


2 重写 processMouseEvent


@Override
protected void processMouseEvent(MouseEvent e)
{
   if(e.getID() == e.MOUSE_RELEASED)
  {
     if(e.getButton() == MouseEvent.BUTTON3)
     {
          // 获取点中的位置
         int row = this.rowAtPoint(e.getPoint());
         int col = this.columnAtPoint(e.getPoint());

         // 选中该行
         if(row >= 0)
         {
           this.clearSelection();
           this.addRowSelectionInterval(row, row);
          }

         if(rightClickedListener != null)
         {
           rightClickedListener.clicked(this, row, col, e);
         }
     }
   }
   super.processMouseEvent(e);
}

千问首页   |   返回上一页