给Table增加右键菜单
- private MouseInputListener getMouseInputListener(final JTable jTable) {
- return new MouseInputListener() {
- public void mouseClicked(MouseEvent e) {
- processEvent(e);
- }
- /***
- * //in order to trigger Left-click the event
- */
- public void mousePressed(MouseEvent e) {
- processEvent(e);// is necessary!!!
- }
- public void mouseReleased(MouseEvent e) {
- // processEvent(e);
- if (e.getButton() == MouseEvent.BUTTON3) {// right click
- JPopupMenu popupmenu = new JPopupMenu();
- JMenuItem runM = new JMenuItem(ACTION_COMMAND_RUN);
- JMenuItem copyParameterM = new JMenuItem(ACTION_COMMAND_COPY_REQUEST_PARAMETER);
- JMenuItem copyResponseM = new JMenuItem(ACTION_COMMAND_COPY_RESPONSE);
- // JMenuItem encodingM = new JMenuItem(ACTION_COMMAND_ENCODING);
- // JMenuItem editM=new JMenuItem("edit");
- MyMenuActionListener yMenuActionListener = new MyMenuActionListener();
- runM.addActionListener(yMenuActionListener);
- copyParameterM.addActionListener(yMenuActionListener);
- copyResponseM.addActionListener(yMenuActionListener);
- // encodingM.addActionListener(yMenuActionListener);
- popupmenu.add(runM);
- popupmenu.add(copyParameterM);
- popupmenu.add(copyResponseM);
- // popupmenu.add(encodingM);
- popupmenu.show(e.getComponent(), e.getX(), e.getY());
- }
- }
- public void mouseEntered(MouseEvent e) {
- processEvent(e);
- }
- public void mouseExited(MouseEvent e) {
- processEvent(e);
- }
- public void mouseDragged(MouseEvent e) {
- processEvent(e);
- }
- public void mouseMoved(MouseEvent e) {
- processEvent(e);
- }
- private void processEvent(MouseEvent e) {
- // Right-click on
- if ((e.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {
- // System.out.println(e.getModifiers());
- // System.out.println("Right-click on");
- int modifiers = e.getModifiers();
- modifiers -= MouseEvent.BUTTON3_MASK;
- modifiers |= MouseEvent.BUTTON1_MASK;
- MouseEvent ne = new MouseEvent(e.getComponent(), e.getID(),
- e.getWhen(), modifiers, e.getX(), e.getY(),
- e.getClickCount(), false);
- jTable.dispatchEvent(ne);// in order to trigger Left-click
- // the event
- }
- }
- };
- }
- class MyMenuActionListener implements ActionListener {
- @Override
- public void actionPerformed(ActionEvent e) {
- String command = e.getActionCommand();
- // System.out.println(command);
- if (command.equalsIgnoreCase(ACTION_COMMAND_RUN)) {
- System.out.println("run");
- requestAction();
- } else if (command.equalsIgnoreCase(ACTION_COMMAND_COPY_REQUEST_PARAMETER)) {
- System.out.println("获取请求要素");
- String requestBody = requestBodyDataTA.getText();
- if (!ValueWidget.isNullOrEmpty(requestBody)) {
- WindowUtil.setSysClipboardText(requestBody);
- }
- } else if (command.equalsIgnoreCase(ACTION_COMMAND_COPY_RESPONSE)) {
- System.out.println("获取应答");
- requestAction();
- if (!ValueWidget.isNullOrEmpty(responseJsonResult)) {
- WindowUtil.setSysClipboardText(responseJsonResult);
- }
- }
- }
- }
调用:
- final MouseInputListener mouseInputListener = getMouseInputListener(parameterTable_1);//
- parameterTable_1.addMouseListener(mouseInputListener);
说明:parameterTable_1的类型是:JTable