GUI的常用组件 之笑傲菜单组件 Menu

package Demo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class TestMenu extends Frame implements ActionListener{

 /**
  * @param args

  */
 TextArea ta;
 MenuBar mb;
 Menu mnFile,mnFile1,mnFile2,mnFile3,Mefu;
 MenuItem miNew,miOpen,miExit,miNew1,miOpen2,miExit3,miSave;
 MenuItem mizi1,mizi2,mizi3,mizi4;
 FileDialog fd;
 public TestMenu(){
  super("菜单的应用");
  ta=new TextArea();
  add(ta);
  mb=new MenuBar();
  this.setMenuBar(mb);
  
  
  mnFile=new Menu("文件");
  mnFile1=new Menu("编辑");
  mnFile2=new Menu("格式");
  mnFile3=new Menu("帮助");
  mb.add(mnFile);
  mb.add(mnFile1);
  mb.add(mnFile2);
  mb.add(mnFile3);
  
  
  miNew1=new MenuItem("字体");miOpen2=new MenuItem("背景");miExit3=new MenuItem("图片");
  miNew=new MenuItem("新建",new MenuShortcut(KeyEvent.VK_N));
  
  miOpen=new MenuItem("打开");
  miOpen.setShortcut(new MenuShortcut(KeyEvent.VK_0));
  
  miSave=new MenuItem("保存");
  miSave.setShortcut(new MenuShortcut(KeyEvent.VK_S));
  Mefu=new Menu("状态");
  miExit=new MenuItem("退出");
  
  miExit.addActionListener(this);
  miOpen.addActionListener(this);
  miSave.addActionListener(this);
  
  miExit.setShortcut(new MenuShortcut(KeyEvent.VK_X));
  
  mnFile1.add(miNew1);
  mnFile1.add(miOpen2);
  mnFile1.add(miExit3);
  mizi1=new MenuItem("在线");
  mizi2=new MenuItem("隐身");
  mizi3=new MenuItem("忙碌");
  mizi4=new MenuItem("离开");
  Mefu.add(mizi1);
  Mefu.add(mizi2);
  Mefu.add(mizi3);
  Mefu.add(mizi4);
  
  
  
  mnFile.add(miNew);
  mnFile.add(miOpen);
  mnFile.add(miSave);
  mnFile.add(Mefu);
  mnFile.addSeparator();//添加分隔符
  mnFile.add(miExit);
  
  fd=new FileDialog(this,"打开",FileDialog.LOAD);
  fd=new FileDialog(this,"保存",FileDialog.SAVE);
  
  
  
  //setBackground(Color.pink);
     //setResizable(false);
  setBounds(200,200,400,300);
  setVisible(true);
  addWindowListener(new WindowAdapter() {

    @Override
    public void windowClosing(WindowEvent e) {
     // TODO Auto-generated method stub
     System.exit(0);
    }

   });
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
       new TestMenu();
 }
 @Override
 public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  String str=e.getActionCommand();//返回的是字符串
  if(str.equals("退出")){
   System.exit(0);
  }else if(str.equals("打开")){
   fd.setVisible(true);
  }
  else if(str.equals("保存")){
   fd.setVisible(true);
  }
  //Object obj=e.getSource();返回的是对象
  //if(obj==miExit){}
 }

}
/*做菜单时注意:1MenuBar 菜单条----   2Menu  菜单-----3MenuItem---菜单选项。。。。。。。。。。。。。。。一直往下走。。。   
 分清目录的级别,把先后顺序搞清楚,明确谁加谁,一般都是上一级的菜单加下一级的菜单。
 要先在构造方法的外面声明,在构造方法的里面进行创建对象,再加到上一级的菜单中。*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值