免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1476 | 回复: 0
打印 上一主题 下一主题

java 右键菜单 (demo) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-04 10:40 |只看该作者 |倒序浏览

               
               
               
import javax.swing.*;
import java.awt.event.*;
public class demoRightMenu extends JFrame {
JMenu fileMenu;
JPopupMenu jPopupMenuOne;
JMenuItem openFile,closeFile,exit;分别对每个按钮添加事件处理就OK了..
JRadioButtonMenuItem copyFile,pasteFile;
ButtonGroup buttonGroupOne;
public demoRightMenu(){
   jPopupMenuOne = new JPopupMenu();//创建jPopupMenuOne对象
   buttonGroupOne=new ButtonGroup();
   //创建文件菜单及子菜单,并将子菜单添加到文件菜单中
   fileMenu  =new JMenu("文件");
   openFile=new JMenuItem("打开");
分别对每个按钮添加事件处理就OK了..
    closeFile=new JMenuItem("关闭");
    fileMenu.add(openFile);
    fileMenu.add( closeFile);  
   
    jPopupMenuOne.add(fileMenu);//将fileMenu菜单添加到弹出式菜单中
    jPopupMenuOne.addSeparator();//添加分割符
   
    //创建单选菜单项,并添加到ButtonGroup对象中      
    copyFile=new JRadioButtonMenuItem("复制");
    pasteFile=new JRadioButtonMenuItem("粘贴");
    //group 只负责维护组之间的逻辑关系
    buttonGroupOne.add(copyFile);
    buttonGroupOne.add(pasteFile);
    jPopupMenuOne.add(copyFile);//将copyFile添加到jPopupMenuOne中
    jPopupMenuOne.add(pasteFile);//将pasteFile添加到jPopupMenuOne中
    jPopupMenuOne.addSeparator();
   
   
    exit=new JMenuItem("退出");
    jPopupMenuOne.add(exit);//将exit添加到jPopupMenuOne中
    //创建监听器对象
    MouseListener popupListener = new PopupListener(jPopupMenuOne);
    this.addMouseListener(popupListener);//向主窗口注册监听器  
    this.setTitle("弹出式菜单的简单使用");
    this.setBounds(100,100,250,150);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
    public static void main(String args[]){
      new demoRightMenu();
}
    //添加内部类,其扩展了MouseAdapter类,用来处理鼠标事件
    class PopupListener extends MouseAdapter {
          JPopupMenu popupMenu;
          PopupListener(JPopupMenu popupMenu) {
              this.popupMenu = popupMenu;
          }
          public void mousePressed(MouseEvent e) {
                showPopupMenu(e);
          }
          public void mouseReleased(MouseEvent e) {
                showPopupMenu(e);
          }
          private void showPopupMenu(MouseEvent e) {
               if (e.isPopupTrigger()) {//如果当前事件与鼠标事件相关,则弹出菜单
                        //关键的是这句,控制显示的。。
                      popupMenu.show(e.getComponent(),e.getX(), e.getY());
               }//结束if
          }//结束showPopupMenu
     } //结束内部类PopupListener
}//结束DemoJPopupMenu
// 注: 如果要添加右键菜单的事件处理, 分别对每个按钮添加事件处理就OK了..


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49717/showart_1359037.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP