首页 > 代码库 > GUI编程第二弹_菜单

GUI编程第二弹_菜单

看了一下菜单果然是醉了。。头都要大了 ,这么难记。。sad

菜单分为 菜单条 菜单 菜单项 

1 菜单条


Jcomponent(组件)子类 JMenubar 负责创建菜单条。

setJMenuBar(JMenuBar bar); 只能向窗口添加一个菜单条。


2 菜单


Jcomponent(组件)子类  JMenu 负责创建菜单。

JMenu(String s) :创建一个标题为s的菜单。

public void add(JMenuItem item)  : 向菜单里添加菜单项。

public JMenuItem getItem(int n) :得到指定索引处的菜单选项。

public int getItemCount() :得到菜单选项的数目。


3 菜单项


Jcomponent(组件)子类 JMenuItem负责创建菜单项。

JMenuItem(String s) :创建标题为s的菜单项。

JMenuItem(String test,Icon icon) :创建带标题和图标的菜单项。

public void setAccelerator(KeyStroke keyStroke) :为菜单项设置快捷键。

纯手打。。累死了

主类:

public class GUI_window {
	public static void main(String[] args){
		WindowMenu w1=new WindowMenu("带菜单的窗口",20,30,280,200);
	}
}

重写JFrame的类.

import javax.swing.*;
import java.awt.event.*;
import static javax.swing.JFrame.*;
public 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("菜单项1",new ImageIcon("a.gif"));
		item2=new JMenuItem("菜单项2",new ImageIcon("b.gif"));
		item1.setAccelerator(KeyStroke.getKeyStroke('A'));//两种设置菜单项快捷键的方法
		item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
		menu.add(item1);
		menu.addSeparator();
		menu.add(item2);
		menu.add(submenu);
		submenu.add(new JMenuItem("hello world!",new ImageIcon("c.gif")));
		menubar.add(menu);
		setJMenuBar(menubar);
	}
}

效果如下:

                                                                  

GUI编程第二弹_菜单