给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