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
Post a Comment