程序功能:在窗口中添加菜单栏,在菜单栏添加菜单项,并添加下拉菜单和 2 级菜单,通过选择菜单项可以执行不同操作,生成如下图所示窗口。

  1. package cys;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import javax.swing.*;
  5.  
  6. public class Menu extends JFrame implements ActionListener{
  7.  
  8. JMenu menu1,menu2,submenu;
  9. JMenuBar menubar;
  10. JButton quit;
  11.  
  12. public Menu() {
  13. super("添加菜单的窗口");
  14. Container con = getContentPane();
  15. con.setLayout(null);
  16. quit = new JButton("退出");
  17. quit.addActionListener(this);
  18. con.add(quit);
  19. quit.setBounds(280,350,80,40);
  20.  
  21. createmenu();
  22. }
  23.  
  24. void createmenu() {
  25. menubar = new JMenuBar();
  26. setJMenuBar(menubar);
  27. menu1 = new JMenu("文件");
  28.  
  29. JMenuItem menuitem1 = new JMenuItem("打开");
  30. JMenuItem menuitem2 = new JMenuItem("关闭");
  31. menu1.add(menuitem1);
  32. menu1.add(menuitem2);
  33. menu1.addSeparator();
  34.  
  35. JMenuItem menuitem3 = new JMenuItem("退出");
  36. menu1.add(menuitem3);
  37.  
  38. JMenu submenu = new JMenu("编辑");
  39. JMenuItem menuitem4 = new JMenuItem("复制");
  40. JMenuItem menuitem5 = new JMenuItem("剪切");
  41. JMenuItem menuitem6 = new JMenuItem("粘贴");
  42. submenu.add(menuitem4);
  43. submenu.add(menuitem5);
  44. submenu.add(menuitem6);
  45. menu1.add(submenu);
  46.  
  47. menu2 = new JMenu("帮助");
  48. menubar.add(menu1);
  49. menubar.add(menu2);
  50.  
  51. }
  52.  
  53. public void actionPerformed(ActionEvent e) {
  54. if(e.getSource()==quit) {
  55. System.exit(0);
  56. }
  57. }
  58.  
  59. public static void main(String[] args) {
  60. // TODO Auto-generated method stub
  61. Menu mainFrame = new Menu();
  62. mainFrame.setSize(600,450);
  63. mainFrame.setVisible(true);
  64. }
  65.  
  66. }

其它例子:

  1. //【例6-26】 下拉式菜单创建示例。
  2. //程序清单6-26: JMenuDemo.java
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6.  
  7. public class JMenuDemo extends JFrame {
  8. JMenuBar menuBar;
  9.  
  10. JMenu menu, submenu;
  11.  
  12. JMenuItem menuItem;
  13.  
  14. JCheckBoxMenuItem cbMenuItem;
  15.  
  16. JRadioButtonMenuItem rbMenuItem;
  17.  
  18. public JMenuDemo() {
  19. super("JMenuDemo");
  20. addWindowListener(new WindowAdapter() {
  21. public void windowClosing(WindowEvent e) {
  22. System.exit(0);
  23. }
  24. });
  25. createMenu();
  26. }
  27.  
  28. void createMenu() {
  29. menuBar = new JMenuBar(); // 生成菜单条
  30. setJMenuBar(menuBar);
  31. menu = new JMenu("有菜单项菜单"); // 创建第一个菜单
  32. menu.setMnemonic(KeyEvent.VK_A);
  33. menuBar.add(menu);
  34. menuItem = new JMenuItem("文本菜单项"); // 创建菜单项
  35. menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,
  36. ActionEvent.ALT_MASK));
  37. menu.add(menuItem);
  38. menuItem = new JMenuItem("图形菜单项", new ImageIcon("images/img.gif"));
  39. menuItem.setMnemonic(KeyEvent.VK_B);
  40. menu.add(menuItem);
  41. menuItem = new JMenuItem(new ImageIcon("images/img.gif"));
  42. menuItem.setMnemonic(KeyEvent.VK_D);
  43. menu.add(menuItem);
  44. menu.addSeparator(); // 创建单选菜单项
  45. ButtonGroup group = new ButtonGroup();
  46. rbMenuItem = new JRadioButtonMenuItem("单选菜单项一");
  47. rbMenuItem.setSelected(true);
  48. rbMenuItem.setMnemonic(KeyEvent.VK_R);
  49. group.add(rbMenuItem);
  50. menu.add(rbMenuItem);
  51. rbMenuItem = new JRadioButtonMenuItem("单选菜单项二");
  52. rbMenuItem.setMnemonic(KeyEvent.VK_O);
  53. group.add(rbMenuItem);
  54. menu.add(rbMenuItem);
  55. menu.addSeparator(); // 创建复选菜单项
  56. cbMenuItem = new JCheckBoxMenuItem("多选菜单项一");
  57. cbMenuItem.setMnemonic(KeyEvent.VK_C);
  58. menu.add(cbMenuItem);
  59. cbMenuItem = new JCheckBoxMenuItem("多选菜单项二");
  60. cbMenuItem.setMnemonic(KeyEvent.VK_H);
  61. menu.add(cbMenuItem);
  62. menu.addSeparator(); // 创建子菜单
  63. submenu = new JMenu("子菜单");
  64. submenu.setMnemonic(KeyEvent.VK_S);
  65. menuItem = new JMenuItem("子菜单菜单项一");
  66. menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,
  67. ActionEvent.ALT_MASK));
  68. submenu.add(menuItem);
  69. menuItem = new JMenuItem("子菜单菜单项二");
  70. submenu.add(menuItem);
  71. menu.add(submenu);
  72. menu = new JMenu("无菜单项菜单"); // 创建菜单
  73. menu.setMnemonic(KeyEvent.VK_N);
  74. menuBar.add(menu);
  75. }
  76.  
  77. public static void main(String[] args) {
  78. JMenuDemo mainFrame = new JMenuDemo();
  79. mainFrame.setSize(450, 260);
  80. mainFrame.setVisible(true);
  81. }
  82. }

Java学习——Applet菜单的更多相关文章

  1. Java学习——Applet画8个同心圆

    import java.awt.*; import java.applet.*; public class GUI3 extends Applet{ public void paint(Graphic ...

  2. Java学习——Applet写字符串(调字体)

    import java.awt.*; import java.applet.Applet; public class GUI2 extends Applet{ public void paint(Gr ...

  3. Java 学习(20):Java Applet 基础 & Java 文档注释

    -- Java Applet 基础 -- Java 文档注释 Java Applet 基础 Applet 是一种 Java 程序.它一般运行在支持 Java 的 Web 浏览器内.因为它有完整的 Ja ...

  4. Java学习-038-JavaWeb_007 -- JSP 动作标识 - plugin

    plugin 动作时用来在 JSP 页面中加载 Java Applet 或者 JavaBean 组件,语法格式如下所示: <jsp:plugin type="bean|applet&q ...

  5. JAVA学习之Ecplise IDE 使用技巧(2)第二章:键盘小快手,代码辅助

    上一篇:JAVA学习之Ecplise IDE 使用技巧(1)第一章:我的地盘我做主,工作空间 第二章:键盘小快手,代码辅助 内容包括: 第一:显示行号 如何设置行号:Ecplice菜单Windows& ...

  6. 转:Java学习路线图

    作者: nuanyangyang 标  题: Java学习路线图(整理中,欢迎纠正) 发信站: 北邮人论坛 (Mon Aug 11 19:28:16 2014), 站内   [以下肯定是不完整的列表, ...

  7. Java学习笔记--Swing用户界面组件

    很多与AWT类似. 事件处理参考:Java学习笔记--AWT事件处理 1.设计模式: 模型:存储内容视图:显示内容控制器:处理用户输入· 2. 文本输入常用组件 2.1 文本域: JLabel lab ...

  8. 【java学习】Servlet简单的表单程序(一)

    此文用于java学习,在此小记. 在此小Demo中使用到了Servlet,所以有必要了解一下Servlet的相关知识.(Servlet的相关知识摘抄自http://blog.csdn.net/jiuq ...

  9. Java 学习文章汇总

    目前JAVA可以说是产业界和学术界最热门的语言,许多人都很急切想把JAVA学好. 但学习是需要步骤的,除非像电影中演的那样,能够把需要的专业技巧下载到脑海:主角只花了几秒下载资料,就马上具备飞行员的技 ...

随机推荐

  1. AC自动机自我理解和模板

    给出长度为m的文本 查询 n个单词出现的次数 用kmp 复杂度 n*m*(单词平均长度) 用字典树 复杂度 m*每次字典树遍历的平均深度) AC自动机 复杂度 m (思路可以理解为kmp+字典树 ) ...

  2. Ubuntu下一个好用的终端

    在终端下输入: sudo apt-get install terminator 快捷键: shift+ctrl+e          在当前窗口右侧新开一个窗口 shift+ctrl+w        ...

  3. Python--subprocess系统命令模块-深入

    当我们运行python的时候,我们都是在创建并运行一个进程.正如我们在Linux进程基础中介绍的那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序.在Python中,我们通过标准 ...

  4. mysql表结构的查询与修改

    MariaDB [test]> show create table bp \G; #查看bp表结构,id长度为20 *************************** 1. row **** ...

  5. csvn使用入门

    在前面我们已经配置好了csvn服务器,直达链接http://blog.csdn.net/qq_34829953/article/details/78285647 现在我们在win10环境下使用我们搭建 ...

  6. OutputStream 和 Writer

    OutputStream类(直接操作byte数组) 该类是字节输出流的抽象类,定义了输出流的各种操作方法.如下图是OutputStream的层次结构: ByteArrayOutputStream:字节 ...

  7. graalvm 简单试用

      安装 地址 http://www.graalvm.org/downloads/ 配置环境变量 linux: export PATH=/path/to/graalvm/bin:$PATH mac: ...

  8. curl常用传参方式

    1.传header参数curl --header 'Token:40d7c342c110414888cc2a0e1284c636' "127.0.0.1/api/user/baseInfo& ...

  9. 00centos安装

    CentOS6.9及CentOS7.4的安装详细步骤 安装前的准备工作:1 VMware已经安装好2 镜像文件下载好(在这里,我用的是CentOS-6.9-x86_64-bin-DVD1.iso和Ce ...

  10. spring boot 2 返回Date 格式化问题

    以前 返回数据把Date  转成 long的时间毫秒数.现在是格式化成了字符串. 默认的结果:"createDate": "2018-09-06T10:04:25.000 ...