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()); } } } }
相关资源:为netbeans的文本组件添加右键菜单功能的插件