CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 7 of 7

Threaded View

  1. #1
    Join Date
    Jun 2008
    Posts
    61

    [RESOLVED] Menu and popup menu can't use the same menu item?

    Hi, I'm trying to do this: "fileMenu" and "popupMenu" use the same menu item, but it didn't show correctly. When I add redMenuItem to popupMenu, redMenuItem disappears in fileMenu.
    Please help me.
    Thanks.

    Code:
    package gui2;
    
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JPopupMenu;
    import javax.swing.JRadioButtonMenuItem;
    
    public class AFrame extends JFrame {
    	private JRadioButtonMenuItem redMenuItem;
    	private JMenu fileMenu;
    	private JMenuBar bar;
    	private JPopupMenu popupMenu;
    	
    	public AFrame()
    	{
    		super("Test");
    		
    		bar = new JMenuBar();
    		fileMenu = new JMenu("File");
    		redMenuItem = new JRadioButtonMenuItem("Red");
    		popupMenu = new JPopupMenu();
    		
    		fileMenu.add(redMenuItem);
    		bar.add(fileMenu);
    		setJMenuBar(bar);
    		
    		popupMenu.add(redMenuItem); // if comment out this line,
    								     // redMenuItem will appear in file menu.
    								   // if uncomment out this line, 
    								    // redMenuItem will disappear in file menu.									   
    		
    		addMouseListener(new MouseAdapter()
    			{
    				public void mousePressed(MouseEvent e) {
    					checkForPopupTrigger(e);
    				}
    
    				public void mouseReleased(MouseEvent e) {
    					checkForPopupTrigger(e);
    				}
    				
    				private void checkForPopupTrigger(MouseEvent e)
    				{
    					if(e.isPopupTrigger())
    						popupMenu.show(e.getComponent(), e.getX(), e.getY());
    				}
    			}
    		);		
    	}
    	
    	public static void main(String[] args) {
    		AFrame app = new AFrame();
    		app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		app.setSize(500, 500);
    		app.setLocation(300, 200);
    		app.setVisible(true);
    	}
    }
    Last edited by Emerald214; October 15th, 2009 at 01:20 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured