菜单栏的的创建->菜单栏放置到窗体-> 菜单的创建->菜单添加到菜单栏-> 菜单项的创建->菜单项添加到菜单


涉及如下三个类:


import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;


JMenu是JMenuItem的子类。所以菜单可以作为菜单项放置在一个菜单下,构成二级菜单。


菜单创建演示如下:


/*
		 * 菜单的创建过程
		 */
		//创建菜单栏
		JMenuBar bar=new JMenuBar();
		//放置菜单栏
		this.setJMenuBar(bar);
		//创建菜单
		JMenu	fileMenu=new JMenu("文件");
		JMenu	modeMenu=new JMenu("模式");
		//放置菜单
		bar.add(fileMenu);
		bar.add(modeMenu);
		//--------------------------------------------
		//创建菜单项for file
		JMenuItem	fileItem1=new JMenuItem("打开文件");
		JMenuItem	fileItem2=new JMenuItem("保存文件");
		JMenuItem	fileItem3=new JMenuItem("关闭文件");
		//创建菜单项for mode
		JMenu		modeItem=new JMenu("选择");
		
		//-------------------------------------------
		//放置菜单项
		fileMenu.add(fileItem1);
		fileMenu.addSeparator();
		fileMenu.add(fileItem2);
		fileMenu.add(fileItem3);
		//放置菜单项for mode
		modeMenu.add(modeItem);
		//-------------------------------------------
		//创建单选按钮
		JRadioButtonMenuItem radioButton1=new JRadioButtonMenuItem("模式1");
		JRadioButtonMenuItem radioButton2=new JRadioButtonMenuItem("模式2");
		//放置单选按钮
		modeItem.add(radioButton1);
		modeItem.add(radioButton2);
		ButtonGroup radioGroup=new ButtonGroup();
		radioGroup.add(radioButton2);
		radioGroup.add(radioButton1);


因为每添加一个菜单项就要添加两行代码,所以写一个方法替代这个过程,实现代码如下:


//放置菜单
		bar.add(this.makeMenu(fileMenu, new String[]{"新建","打开文件",null,"保存文件","关闭文件"}));
		bar.add(this.makeMenu(modeMenu, new String[]{"改变",null,null,null}));		
	}
	/*
	 * 优化的菜单项创建方法
	 */
	public JMenu makeMenu(JMenu m,String[] items){
		for(int i=0;i


java如何做二次菜单 java创建一个简单的菜单_菜单项