java - Adding a JMenu to a JPanel -



java - Adding a JMenu to a JPanel -

i need have jmenu (the 1 arrow on right can display jmenuitem) in jpanel. problem when jmenu not activate on mouse rollover... don't know how , if it's possible.

if wrap jmenu in jmenubar, works expected.

here demo example:

import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jframe; import javax.swing.jmenu; import javax.swing.jmenubar; import javax.swing.jmenuitem; import javax.swing.joptionpane; import javax.swing.swingutilities; public class testmenus { private jmenubar createmenubar(string name, int depth) { jmenubar bar = new jmenubar(); bar.add(createmenu(name, depth)); homecoming bar; } private jmenu createmenu(string name, int depth) { jmenu menu = new jmenu(name); (int = 0; < 5; i++) { if (depth > 0) { menu.add(createmenu("sub-" + name, depth - 1)); } } (int = 0; < 5; i++) { menu.add(createmenuitem("menu item " + (i + 1))); } homecoming menu; } private jmenuitem createmenuitem(string name) { final jmenuitem jmenuitem = new jmenuitem(name); jmenuitem.addactionlistener(new actionlistener() { @override public void actionperformed(actionevent e) { joptionpane.showmessagedialog(jmenuitem, "successfully pressed menu item"); } }); homecoming jmenuitem; } protected void initui() { jframe frame = new jframe(testmenus.class.getsimplename()); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(createmenubar("root menu", 3)); frame.pack(); frame.setvisible(true); } public static void main(string[] args) { swingutilities.invokelater(new runnable() { @override public void run() { new testmenus().initui(); } }); } }

an result:

java swing jpanel jmenu jmenuitem

Comments

Popular posts from this blog

web services - java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.proxy.Enhancer -

Accessing MATLAB's unicode strings from C -

javascript - mongodb won't find my schema method in nested container -