弹出式菜单的简单使用

package netBeansTest;

import javax.swing.*;
import java.awt.event.*;

public class DemoJPopupMenu extends JFrame //implements ActionListener
{
 /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
JMenu fileMenu;
 JPopupMenu jPopupMenuOne;
 JMenuItem openFile,closeFile,exit;
 JRadioButtonMenuItem copyFile,pasteFile;
 ButtonGroup buttonGroupOne;
 public DemoJPopupMenu()
 {
    jPopupMenuOne = new JPopupMenu();//创建jPopupMenuOne对象
    buttonGroupOne=new ButtonGroup();
    //创建文件菜单及子菜单,并将子菜单添加到文件菜单中
    fileMenu  =new JMenu("文件"); 
    openFile=new JMenuItem("打开");
	closeFile=new JMenuItem("关闭");
	fileMenu.add(openFile);
	fileMenu.add( closeFile);	
	jPopupMenuOne.add(fileMenu);//将fileMenu菜单添加到弹出式菜单中
	jPopupMenuOne.addSeparator();//添加分割符
	//创建单选菜单项,并添加到ButtonGroup对象中 	
	copyFile=new JRadioButtonMenuItem("复制"); 
	pasteFile=new JRadioButtonMenuItem("粘贴");
	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 DemoJPopupMenu();
 }
 
    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());                 
            }
        }
    } 
 
}

你可能感兴趣的:(swing)