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

相关文章
|
5月前
|
Java API 数据库
Java一分钟之-JPA注解:@Entity, @Table, @Id等
【6月更文挑战第14天】Java Persistence API (JPA) 是Java开发中的ORM框架,通过注解简化数据访问层。本文介绍了三个核心注解:`@Entity`标识实体类,`@Table`自定义表名,`@Id`定义主键。易错点包括忘记添加`@Entity`、未正确设置主键。建议使用`@GeneratedValue`和`@Column`细化主键策略和字段映射。正确理解和应用这些注解能提高开发效率和代码质量。
249 3
|
3月前
|
安全 Java API
|
3月前
|
SQL Java 数据库连接
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
【Java】Java Swing 图书管借阅管理系统(源码+论文)【独一无二】
160 0
|
3月前
|
存储 数据可视化 Java
【Java】Java swing 民宿管理系统 GUI(源码+可视化界面)【独一无二】
【Java】Java swing 民宿管理系统 GUI(源码+可视化界面)【独一无二】
|
5月前
|
Java 数据安全/隐私保护
利用Java图形化界面组件Swing写一个简易的登录界面
利用Java图形化界面组件Swing写一个简易的登录界面
74 1
|
5月前
|
Java Windows
基于java Swing编写扫雷游戏设计实现(已调试)
基于java Swing编写扫雷游戏设计实现(已调试)
73 1
|
5月前
|
Java
Java Swing模拟水波纹扩散效果动画
Java Swing模拟水波纹扩散效果动画
55 6
|
5月前
|
Java
JAVA Swing自定义JScorllPanel
JAVA Swing自定义JScorllPanel
38 1
|
5月前
|
前端开发 Java UED
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
|
5月前
|
存储 设计模式 前端开发
[笔记] 疯狂JAVA讲义(第3版)第12章 Swing编程
[笔记] 疯狂JAVA讲义(第3版)第12章 Swing编程
下一篇
无影云桌面