java swing 给Table增加右键菜单

给Table增加右键菜单

Java代码   收藏代码
  1.  private MouseInputListener getMouseInputListener(final JTable jTable) {  
  2.         return new MouseInputListener() {  
  3.             public void mouseClicked(MouseEvent e) {  
  4.                 processEvent(e);  
  5.             }  
  6.   
  7.             /*** 
  8.              * //in order to trigger Left-click the event 
  9.              */  
  10.             public void mousePressed(MouseEvent e) {  
  11.                 processEvent(e);// is necessary!!!  
  12.             }  
  13.   
  14.             public void mouseReleased(MouseEvent e) {  
  15.                 // processEvent(e);  
  16.   
  17.   
  18.                 if (e.getButton() == MouseEvent.BUTTON3) {// right click  
  19.   
  20.                     JPopupMenu popupmenu = new JPopupMenu();  
  21.                     JMenuItem runM = new JMenuItem(ACTION_COMMAND_RUN);  
  22.                     JMenuItem copyParameterM = new JMenuItem(ACTION_COMMAND_COPY_REQUEST_PARAMETER);  
  23.                     JMenuItem copyResponseM = new JMenuItem(ACTION_COMMAND_COPY_RESPONSE);  
  24. //                  JMenuItem encodingM = new JMenuItem(ACTION_COMMAND_ENCODING);  
  25.                     // JMenuItem editM=new JMenuItem("edit");  
  26.                     MyMenuActionListener yMenuActionListener = new MyMenuActionListener();  
  27.                     runM.addActionListener(yMenuActionListener);  
  28.                     copyParameterM.addActionListener(yMenuActionListener);  
  29.                     copyResponseM.addActionListener(yMenuActionListener);  
  30. //                  encodingM.addActionListener(yMenuActionListener);  
  31.                     popupmenu.add(runM);  
  32.                     popupmenu.add(copyParameterM);  
  33.                     popupmenu.add(copyResponseM);  
  34. //                  popupmenu.add(encodingM);  
  35.                     popupmenu.show(e.getComponent(), e.getX(), e.getY());  
  36.                 }  
  37.             }  
  38.   
  39.             public void mouseEntered(MouseEvent e) {  
  40.                 processEvent(e);  
  41.             }  
  42.   
  43.             public void mouseExited(MouseEvent e) {  
  44.                 processEvent(e);  
  45.             }  
  46.   
  47.             public void mouseDragged(MouseEvent e) {  
  48.                 processEvent(e);  
  49.             }  
  50.   
  51.             public void mouseMoved(MouseEvent e) {  
  52.                 processEvent(e);  
  53.             }  
  54.   
  55.             private void processEvent(MouseEvent e) {  
  56.                 // Right-click on  
  57.                 if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {  
  58.                     // System.out.println(e.getModifiers());  
  59.                     // System.out.println("Right-click on");  
  60.                     int modifiers = e.getModifiers();  
  61.                     modifiers -= MouseEvent.BUTTON3_MASK;  
  62.                     modifiers |= MouseEvent.BUTTON1_MASK;  
  63.                     MouseEvent ne = new MouseEvent(e.getComponent(), e.getID(),  
  64.                             e.getWhen(), modifiers, e.getX(), e.getY(),  
  65.                             e.getClickCount(), false);  
  66.                     jTable.dispatchEvent(ne);// in order to trigger Left-click  
  67.                     // the event  
  68.                 }  
  69.             }  
  70.         };  
  71.     }  
  72.   
  73.     class MyMenuActionListener implements ActionListener {  
  74.   
  75.         @Override  
  76.         public void actionPerformed(ActionEvent e) {  
  77.             String command = e.getActionCommand();  
  78. //          System.out.println(command);  
  79.             if (command.equalsIgnoreCase(ACTION_COMMAND_RUN)) {  
  80.                 System.out.println("run");  
  81.                 requestAction();  
  82.             } else if (command.equalsIgnoreCase(ACTION_COMMAND_COPY_REQUEST_PARAMETER)) {  
  83.                 System.out.println("获取请求要素");  
  84.                 String requestBody = requestBodyDataTA.getText();  
  85.                 if (!ValueWidget.isNullOrEmpty(requestBody)) {  
  86.                     WindowUtil.setSysClipboardText(requestBody);  
  87.                 }  
  88.             } else if (command.equalsIgnoreCase(ACTION_COMMAND_COPY_RESPONSE)) {  
  89.                 System.out.println("获取应答");  
  90.                 requestAction();  
  91.                 if (!ValueWidget.isNullOrEmpty(responseJsonResult)) {  
  92.                     WindowUtil.setSysClipboardText(responseJsonResult);  
  93.                 }  
  94.             }  
  95.   
  96.   
  97.         }  
  98.   
  99.     }  

 调用:

Java代码   收藏代码
  1. final MouseInputListener mouseInputListener = getMouseInputListener(parameterTable_1);//  
  2.         parameterTable_1.addMouseListener(mouseInputListener);  

 

 

说明:parameterTable_1的类型是:JTable

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值