菜单条、菜单、菜单项
菜单条、菜单、菜单项是窗口常用的组件,菜单放在菜单条里,菜单项放在菜单里。
1、菜单条
JComponent类的子类JMenubar负责创建菜单条,即JMemubar的个实例就是一个菜单条。JFrame类有个将菜单条放置到窗口中的方法:
setJMenuBar(JMenuBar bar):
该方法将菜单条添加到窗口的顶端,需要注意的是,只能向窗口添加一个菜单条。
2、菜单
JComponent类的子类JMenu负责创建菜单,即JMenu的一个实例就是一个菜单。
3、菜单项
JComponent类的子类JMenuItem负贵创建菜单项,即JMenuIem的一个实例就是一个菜
单项。
4、嵌人子菜单
JMemu是JMenuItem的子类,因此菜单本身也是一个菜单项,当把一个菜单看作菜单项添加到某个菜单中时,称这样的菜单为子菜单。
5、菜单上的图标
为了使菜单項有一个图标,可以用图标类Icon声明一个图
然后使用其子类ImageIcom类创建一个图标,如:
Icon icon = new ImageIcon(“a,gif”);
然后菜单项调用setIcon(Icon icon)方法将图标设置为icon。
例子在主类的main方法中用JFrame的子类创建一个含有菜单的窗口。
import javax.swing.*; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import static javax.swing.JFrame.*; public class hello { public static void main(String[] args) { WindowMenu win=new WindowMenu("带菜单的窗口",20,30,200,190); } } class WindowMenu extends JFrame{ JMenuBar menubar; JMenu menu,subMenu; JMenuItem item1,item2; public WindowMenu(){} public WindowMenu(String s,int x,int y,int w,int h){ init(s); setLocation(x,y); setSize(w,h); setVisible(true); setDefaultCloseOperation(DISPOSE_ON_CLOSE); } void init(String s){ setTitle(s); menubar=new JMenuBar(); menu=new JMenu("菜单"); subMenu=new JMenu("软件项目"); item1=new JMenuItem("Java话题",new ImageIcon("a.gif")); item2=new JMenuItem("动画话题",new ImageIcon("b.gif")); item1.setAccelerator(KeyStroke.getKeyStroke('A')); item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); menu.add(item1); menu.addSeparator(); menu.add(item2); menu.add(subMenu); subMenu.add(new JMenuItem("汽车销售系统",new ImageIcon("c.gif"))); subMenu.add(new JMenuItem("农场信息系统",new ImageIcon("c.gif"))); menubar.add(menu); setJMenuBar(menubar); } }图片的话要自己添加。