`

java swing 给Table增加右键菜单

阅读更多

给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

 

  • 大小: 125.2 KB
0
1
分享到:
评论

相关推荐

    java实现table添加右键点击事件监听操作示例

    Java 是一种广泛应用于软件开发的编程语言,今天我们来讨论如何在 Java 中实现 Table 添加右键点击事件监听操作。右键点击事件监听操作是一种常见的交互方式,能够提供更多的功能和便捷性。 什么是事件监听? ...

    java的swing界面

    如何使用java操作数据库,并进行绑定jTable操作,进行增删改查,和右键菜单

    java-Swing课本配套资料

    4. **菜单和菜单项**:JMenu和 JMenuItem 允许创建下拉菜单,JPopupMenu 可以实现右键菜单。通过实例,你可以学会如何组织菜单结构和响应菜单事件。 5. **表(Table)和树(Tree)组件**:JTable用于显示二维数据,...

    Java版学籍管理系统

    - **Java Swing**:用于开发图形用户界面,包括右键菜单、对话框和表格控件的使用。 - **数据库操作**:通过JDBC(Java Database Connectivity)实现与MySQL数据库的交互。 #### 4. 开发环境及相关软件准备 - **...

    java项目中常用的知识

    在Java Swing中,实现右键菜单是一个常见的需求。通过监听组件的鼠标点击事件,当检测到右键点击时(通常按钮代码为`BUTTON3`),可以显示一个预定义的`JPopupMenu`。代码片段如下所示: ```java if (e.getButton() ...

    Swing教程

    在运行应用时,如果JTable没有显示表头,可以在设计视图中选中表头,通过右键菜单的“Expose as Class level variable”选项使其可见。你还可以通过修改表头和单元格的属性来自定义JTable的外观,如改变背景色等。 ...

    北大青鸟第一学期JAVA课件第12章

    在北大青鸟的ACCP V4.0第一学期的JAVA课程中,第12章主要讲解了Swing组件的应用,特别是关注于Swing中的菜单、对话框以及数据展示的两个重要组件:JTable和JTree。 Swing是Java的一个图形用户界面(GUI)工具包,它是...

    JAVA SWT学生信息管理系统

    相比Java自带的AWT和Swing,SWT具有更好的性能和更接近原生应用的外观,因为它直接调用底层操作系统提供的UI组件。 在**对话框**方面,JAVA SWT支持多种类型的对话框,如消息对话框(MessageDialog)、输入对话框...

    io0007:这是工作以来总结的常用util

    依赖关系注意:java 编译级别必须是1.6,否则关于图形的类编译不通过里面有mac 相关的代码,所以在window中编译会报错,需要把mac 相关的代码注释掉解决bug修改com/swing/table/TableUtil3.java 中的方法...

    SqlToolBox 1.8.2

    执行Sql语句的过程具体来说是这样做的,首先,在输入窗口输入您向执行的Sql语句,如“select * from table”之类,当然您更可以通过表格的右键菜单来获得常用的sql语句(在输入或是粘贴文本的过程中,Sql语句中的...

    Flex Twaver 入门指南中文版

    **Flex Twaver** 是一套专门针对电信网管系统开发的组件包,它基于 Java Swing 扩展而成,旨在提供一种轻量级且功能强大的解决方案。该组件包采用 MVC(Model-View-Controller)架构设计,通过一组高度封装的可视化...

    2021-2022计算机二级等级考试试题及答案No.14259.docx

    6. 删除文件:在 Windows 98 中,按 `Esc` 键并不能删除文件,通常使用 `Delete` 键或右键菜单的删除选项来删除文件。 7. 显示器属性:在 Windows 中,用户可以通过控制面板的“显示”命令或右键点击桌面选择“属性...

    2021-2022计算机二级等级考试试题及答案No.9642.docx

    18. 类型转换:在Java中,将int类型的i赋值给long类型的j可以直接进行,但将long类型的j赋值给int类型的i需要强制类型转换,直接赋值会导致数据丢失。 19. 内存类型:在微机中,内存储器通常采用半导体存储器,如...

    swt JFace的API文档

    8. **Control Adapters**:这些适配器类可以添加额外的功能,例如在控件上添加右键菜单。 9. **Bindings and Commands**:基于模型的命令框架,使得可以在整个应用中统一管理和触发操作。 通过这个 API 文档,...

    2021-2022计算机二级等级考试试题及答案No.19449.docx

    23. **CardLayout** - Java Swing 中的 CardLayout 布局管理器将容器看作一组卡片,一次只能显示一张卡片。 24. **参数传递** - C 语言中,简单变量作为函数参数时,采用值传递,即实际参数的副本传递给形式参数。 ...

    2021-2022计算机二级等级考试试题及答案No.16827.docx

    - **知识点**: Swing 是 Java 中的一种 GUI 工具包。 - **构件**: Swing 提供了许多用于构建图形界面的构件。 - **构件列表**: - `JPanel`: 用于容纳其他组件。 - `JTable`: 显示表格数据。 - `JFrame`: 应用...

Global site tag (gtag.js) - Google Analytics