Java中菜单分为常规式菜单和弹出式菜单。

1.常规式菜单:由菜单栏(JMenuBar)、下拉菜单项(JMenu)和命令菜单项(JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem)组成,他们在swing中层次关系如下图:

 

用java编写显示菜单栏 java菜单项_弹出式菜单

菜单栏JMenuBar仅拥有setJMenuBar成员函数的容器能设置,如JFrame、Japplet。通过JMenuBar的add方法想菜单栏中添加菜单项。

可以通过JMenu的add方法添加命令菜单项,通过insertSeparator方法添加分隔条。

菜单项都有拥有setMnemonic成员方法设置助记符(按住alt和助记符激活下拉菜单项),命令菜单项还拥有成员方法setAccelerator(KeyStroke keyStroke)设置快捷键。KeyStroke对象可以由其静态成员方法getKeyStroke(String s)获取,字符串s有修饰词和按键两部分组成,修饰词为一下任意一个单词:

shift control ctrl meta alt altGraph。

JMenuItem、JCheckBoxMenuItem、JRadioButtonMenuItem的事件处理分别和JButton、JCheckBox、JRadioButton对应。


2.弹出式菜单:JPopupMenu,通过成员方法public JMenuItem add(JMenuItem menuItem)添加菜单项。通过MouseAdapter或MouseListener监听鼠标事件,调用JPopupMenu的show成员函数显示弹出式菜单,但是调用前要利用MouseEvent成员方法public boolean isPopupTrigger()函数判断鼠标事件是否用来触发弹出式菜单事件。