my dog learned polymorphism*
The moose likes Swing / AWT / SWT and the fly likes How to make popup invisible Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "How to make popup invisible" Watch "How to make popup invisible" New topic
Author

How to make popup invisible

Jack Mns
Greenhorn

Joined: Jul 20, 2006
Posts: 4
If I run the following application and then right-click on the
application, a popup menu will show up. If I move mouse outside the frame (I try to make JComponent visible so that I can move mouse outside JComponent, but I cannot make it happen), popup menu is still visible. I try to add the following to mouseExited method:
popupMenu.setVisible(false);

or add the following to let popup listen to mouse listener:

But these seemingly will disable pupup menu.

What I try to do is: make popup disappear once user move her mouse outside frame (better yet JComponent). How can I do this?

Here is the sample code I just created:

Craig Wood
Ranch Hand

Joined: Jan 14, 2004
Posts: 1535
Jack Mns
Greenhorn

Joined: Jul 20, 2006
Posts: 4
Thanks.

Just tried it. It seems popup does not disappear once mouse moved outside
the frame.

Originally posted by Craig Wood:
Craig Wood
Ranch Hand

Joined: Jan 14, 2004
Posts: 1535
Craig Wood
Ranch Hand

Joined: Jan 14, 2004
Posts: 1535
If you are using j2se 1.5+ here is a way to keep the popupMenu visible until the mouse exits the underlying component or selects a JMenuItem on the menu, ie, so you can mouse in and out of the menu without losing it.
Jack Mns
Greenhorn

Joined: Jul 20, 2006
Posts: 4
Thank you very much, Craig. This works really nice.

But there is one problem though:
It works if popup menu is completely inside its parent component. If you
deliberately right-click on the very bottom of the frame, and let popup extends beyond the frame's bottom line, then move mouse down across popup menu til its below it. You can see popup still stays visible even though mouse is outside frame and popup.

It seems mouse still thinks its inside popup's parent component? or its a bug?

Or its a focus probelm: need to make popup lose focus once its moved outside both component/popup?

thanks,





[/qb]<hr></blockquote>
[ July 22, 2006: Message edited by: Jack Mns ]
Craig Wood
Ranch Hand

Joined: Jan 14, 2004
Posts: 1535
Jack Mns
Greenhorn

Joined: Jul 20, 2006
Posts: 4
Thanks, Craig. It works like charm now.

Cheers!
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: How to make popup invisible
 
Similar Threads
JButtons inside JTooltip
Right-Click on JMenuItem
Prevent JPopupMenu from hiding when clicked outside the menu
JPopup and JTree Problem
Using PopupMenu with awt components