给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
相关推荐
Java 是一种广泛应用于软件开发的编程语言,今天我们来讨论如何在 Java 中实现 Table 添加右键点击事件监听操作。右键点击事件监听操作是一种常见的交互方式,能够提供更多的功能和便捷性。 什么是事件监听? ...
如何使用java操作数据库,并进行绑定jTable操作,进行增删改查,和右键菜单
4. **菜单和菜单项**:JMenu和 JMenuItem 允许创建下拉菜单,JPopupMenu 可以实现右键菜单。通过实例,你可以学会如何组织菜单结构和响应菜单事件。 5. **表(Table)和树(Tree)组件**:JTable用于显示二维数据,...
- **Java Swing**:用于开发图形用户界面,包括右键菜单、对话框和表格控件的使用。 - **数据库操作**:通过JDBC(Java Database Connectivity)实现与MySQL数据库的交互。 #### 4. 开发环境及相关软件准备 - **...
在Java Swing中,实现右键菜单是一个常见的需求。通过监听组件的鼠标点击事件,当检测到右键点击时(通常按钮代码为`BUTTON3`),可以显示一个预定义的`JPopupMenu`。代码片段如下所示: ```java if (e.getButton() ...
在运行应用时,如果JTable没有显示表头,可以在设计视图中选中表头,通过右键菜单的“Expose as Class level variable”选项使其可见。你还可以通过修改表头和单元格的属性来自定义JTable的外观,如改变背景色等。 ...
在北大青鸟的ACCP V4.0第一学期的JAVA课程中,第12章主要讲解了Swing组件的应用,特别是关注于Swing中的菜单、对话框以及数据展示的两个重要组件:JTable和JTree。 Swing是Java的一个图形用户界面(GUI)工具包,它是...
相比Java自带的AWT和Swing,SWT具有更好的性能和更接近原生应用的外观,因为它直接调用底层操作系统提供的UI组件。 在**对话框**方面,JAVA SWT支持多种类型的对话框,如消息对话框(MessageDialog)、输入对话框...
依赖关系注意:java 编译级别必须是1.6,否则关于图形的类编译不通过里面有mac 相关的代码,所以在window中编译会报错,需要把mac 相关的代码注释掉解决bug修改com/swing/table/TableUtil3.java 中的方法...
执行Sql语句的过程具体来说是这样做的,首先,在输入窗口输入您向执行的Sql语句,如“select * from table”之类,当然您更可以通过表格的右键菜单来获得常用的sql语句(在输入或是粘贴文本的过程中,Sql语句中的...
**Flex Twaver** 是一套专门针对电信网管系统开发的组件包,它基于 Java Swing 扩展而成,旨在提供一种轻量级且功能强大的解决方案。该组件包采用 MVC(Model-View-Controller)架构设计,通过一组高度封装的可视化...
6. 删除文件:在 Windows 98 中,按 `Esc` 键并不能删除文件,通常使用 `Delete` 键或右键菜单的删除选项来删除文件。 7. 显示器属性:在 Windows 中,用户可以通过控制面板的“显示”命令或右键点击桌面选择“属性...
18. 类型转换:在Java中,将int类型的i赋值给long类型的j可以直接进行,但将long类型的j赋值给int类型的i需要强制类型转换,直接赋值会导致数据丢失。 19. 内存类型:在微机中,内存储器通常采用半导体存储器,如...
8. **Control Adapters**:这些适配器类可以添加额外的功能,例如在控件上添加右键菜单。 9. **Bindings and Commands**:基于模型的命令框架,使得可以在整个应用中统一管理和触发操作。 通过这个 API 文档,...
23. **CardLayout** - Java Swing 中的 CardLayout 布局管理器将容器看作一组卡片,一次只能显示一张卡片。 24. **参数传递** - C 语言中,简单变量作为函数参数时,采用值传递,即实际参数的副本传递给形式参数。 ...
- **知识点**: Swing 是 Java 中的一种 GUI 工具包。 - **构件**: Swing 提供了许多用于构建图形界面的构件。 - **构件列表**: - `JPanel`: 用于容纳其他组件。 - `JTable`: 显示表格数据。 - `JFrame`: 应用...