Swing菜单和菜单项是按钮,因为JMenuItem扩展AbstractButton,JMenu扩展JMenuItem。因此,Swing菜单和菜单项继承了如下功能,即包含文本和(或)图标、显示光标进入时的图标和助记符等。
JMenuItem和JMenu的父组件,它们***都归于java.awt.Container,以强调菜单和菜单项都是容器。可以把任何类型的组件(从包含一个动画GIF的标签到JTree的一个实例)添加到一个菜单或菜单项中。
Swing菜单和菜单项还实现MenuElement接口,以便参与菜单事件的处理。工具条和弹出式菜单都扩展JComponent类,即任意组件都可以添加到一个工具条或弹出式菜单中,介绍下面的组件:
◆JMenuItem
◆JCheckBoxMenuItem
◆JRadioButtonMenuItem
◆JMenu
◆JPopupMenu
◆JMenuBar
例子 1:在菜单中增加复选菜单
- importjava.awt.event.KeyEvent;
- importjavax.swing.JCheckBoxMenuItem;
- importjavax.swing.JFrame;
- importjavax.swing.JMenu;
- importjavax.swing.JMenuBar;
- importjavax.swing.JMenuItem;
- publicclassJCheckBoxMenuItemDemo{
- publicstaticvoidmain(finalStringargs[]){
- JFrameframe=newJFrame("MenuSampleExample");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JMenuBarmenuBar=newJMenuBar();
- //FileMenu,F-Mnemonic
- JMenufileMenu=newJMenu("File");
- fileMenu.setMnemonic(KeyEvent.VK_F);
- menuBar.add(fileMenu);
- //File->New,N-Mnemonic
- 22.JMenuItemnewMenuItem=newJMenuItem("New",KeyEvent.VK_N);
- fileMenu.add(newMenuItem);
- JCheckBoxMenuItemcaseMenuItem=newJCheckBoxMenuItem("CaseSensitive");
- caseMenuItem.setMnemonic(KeyEvent.VK_C);
- fileMenu.add(caseMenuItem);
- frame.setJMenuBar(menuBar);
- frame.setSize(350,250);
- frame.setVisible(true);
- }
- }
【编辑推荐】