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

package cys;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; public class Menu extends JFrame implements ActionListener{ JMenu menu1,menu2,submenu;
JMenuBar menubar;
JButton quit; public Menu() {
super("添加菜单的窗口");
Container con = getContentPane();
con.setLayout(null);
quit = new JButton("退出");
quit.addActionListener(this);
con.add(quit);
quit.setBounds(280,350,80,40); createmenu();
} void createmenu() {
menubar = new JMenuBar();
setJMenuBar(menubar);
menu1 = new JMenu("文件"); JMenuItem menuitem1 = new JMenuItem("打开");
JMenuItem menuitem2 = new JMenuItem("关闭");
menu1.add(menuitem1);
menu1.add(menuitem2);
menu1.addSeparator(); JMenuItem menuitem3 = new JMenuItem("退出");
menu1.add(menuitem3); JMenu submenu = new JMenu("编辑");
JMenuItem menuitem4 = new JMenuItem("复制");
JMenuItem menuitem5 = new JMenuItem("剪切");
JMenuItem menuitem6 = new JMenuItem("粘贴");
submenu.add(menuitem4);
submenu.add(menuitem5);
submenu.add(menuitem6);
menu1.add(submenu); menu2 = new JMenu("帮助");
menubar.add(menu1);
menubar.add(menu2); } public void actionPerformed(ActionEvent e) {
if(e.getSource()==quit) {
System.exit(0);
}
} public static void main(String[] args) {
// TODO Auto-generated method stub
Menu mainFrame = new Menu();
mainFrame.setSize(600,450);
mainFrame.setVisible(true);
} }

其它例子:

//【例6-26】  下拉式菜单创建示例。
//程序清单6-26: JMenuDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; public class JMenuDemo extends JFrame {
JMenuBar menuBar; JMenu menu, submenu; JMenuItem menuItem; JCheckBoxMenuItem cbMenuItem; JRadioButtonMenuItem rbMenuItem; public JMenuDemo() {
super("JMenuDemo");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
createMenu();
} void createMenu() {
menuBar = new JMenuBar(); // 生成菜单条
setJMenuBar(menuBar);
menu = new JMenu("有菜单项菜单"); // 创建第一个菜单
menu.setMnemonic(KeyEvent.VK_A);
menuBar.add(menu);
menuItem = new JMenuItem("文本菜单项"); // 创建菜单项
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1,
ActionEvent.ALT_MASK));
menu.add(menuItem);
menuItem = new JMenuItem("图形菜单项", new ImageIcon("images/img.gif"));
menuItem.setMnemonic(KeyEvent.VK_B);
menu.add(menuItem);
menuItem = new JMenuItem(new ImageIcon("images/img.gif"));
menuItem.setMnemonic(KeyEvent.VK_D);
menu.add(menuItem);
menu.addSeparator(); // 创建单选菜单项
ButtonGroup group = new ButtonGroup();
rbMenuItem = new JRadioButtonMenuItem("单选菜单项一");
rbMenuItem.setSelected(true);
rbMenuItem.setMnemonic(KeyEvent.VK_R);
group.add(rbMenuItem);
menu.add(rbMenuItem);
rbMenuItem = new JRadioButtonMenuItem("单选菜单项二");
rbMenuItem.setMnemonic(KeyEvent.VK_O);
group.add(rbMenuItem);
menu.add(rbMenuItem);
menu.addSeparator(); // 创建复选菜单项
cbMenuItem = new JCheckBoxMenuItem("多选菜单项一");
cbMenuItem.setMnemonic(KeyEvent.VK_C);
menu.add(cbMenuItem);
cbMenuItem = new JCheckBoxMenuItem("多选菜单项二");
cbMenuItem.setMnemonic(KeyEvent.VK_H);
menu.add(cbMenuItem);
menu.addSeparator(); // 创建子菜单
submenu = new JMenu("子菜单");
submenu.setMnemonic(KeyEvent.VK_S);
menuItem = new JMenuItem("子菜单菜单项一");
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_2,
ActionEvent.ALT_MASK));
submenu.add(menuItem);
menuItem = new JMenuItem("子菜单菜单项二");
submenu.add(menuItem);
menu.add(submenu);
menu = new JMenu("无菜单项菜单"); // 创建菜单
menu.setMnemonic(KeyEvent.VK_N);
menuBar.add(menu);
} public static void main(String[] args) {
JMenuDemo mainFrame = new JMenuDemo();
mainFrame.setSize(450, 260);
mainFrame.setVisible(true);
}
}

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. Go Example--切片

    package main import ( "fmt" ) func main() { //make来初始化一个切片,必须指名切片的长度 s:= make([]string, 3) ...

  2. day 06云计算的三种服务模式:IaaS,PaaS和SaaS

    云计算的三种服务模式:IaaS,PaaS和SaaS ”云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道. “云”其实是互联 ...

  3. vue中在页面渲染完之后获取元素(否则动态渲染的元素获取不到)

    两种方法: 方法一: 使用$nextTick,在异步获得数据之后再获取元素: 方法二: 在then之后再获取该元素: 问题2:vue中监听改变数组的方法: let idx =; this.listIn ...

  4. Centos7快速安装haproxy

    HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性.负载均衡,以及基于TCP和HTTP的应用程序代理. HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要 ...

  5. Web读取指定的config文件的内容

    需求: 什么时候会用到动态改变Web.config内的值? 在Web.config定义了一个全局设置值A,因为程序运行中满足了某个条件,要将A的值改变 Web.config中定义: <appSe ...

  6. ASP.NET MVC中常用的ActionResult类型

    常见的ActionResult 1.ViewResult 表示一个视图结果,它根据视图模板产生应答内容.对应得Controller方法为View. 2.PartialViewResult 表示一个部分 ...

  7. Task.Delay() 和 Thread.Sleep() 区别

    1.Thread.Sleep 是同步延迟,Task.Delay异步延迟. 2.Thread.Sleep 会阻塞线程,Task.Delay不会. 3.Thread.Sleep不能取消,Task.Dela ...

  8. requestAnimationFrame 持续动画效果

    1. requestAnimationFrame 概述 requestAnimationFrame 是浏览器用于定时循环操作的一个API, 类似于setTimeout, 主要用途是按帧对网页进行重绘. ...

  9. centos7 pptp 安装

    1  安装 ppp yum install -y ppp 2 安装 pptpd yum install -y pptpd 3 编辑/etc/pptpd.conf 在最后 添加 localip 192. ...

  10. 转JMeter ----数据库 not allowed to connect to this MySQL

    测试的时候遇到报错:   Cannot create PoolableConnectionFactory (null,  message from server: "Host 'ceshiP ...