Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5401294
  • 博文数量: 763
  • 博客积分: 12108
  • 博客等级: 上将
  • 技术积分: 15717
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-28 21:21
个人简介

业精于勤,荒于嬉

文章分类

全部博文(763)

文章存档

2018年(6)

2017年(15)

2016年(2)

2015年(31)

2014年(14)

2013年(87)

2012年(75)

2011年(94)

2010年(190)

2009年(38)

2008年(183)

2007年(28)

分类: Java

2008-11-04 10:40:25



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了..

阅读(2420) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2008-11-04 10:48:01

这句用来显示菜单,很重要哦.. private void MousePressed(java.awt.event.MouseEvent evt) { if(evt.isPopupTrigger()) { jPopupMenu1.show(evt.getComponent(), evt.getX(), evt.getY()); } }