java 24 - 7 GUI之 创建多级菜单窗体
需求:
创建多级菜单
步骤:
A:创建窗体对象(并设置属性和布局)
B:创建菜单栏
C:创建菜单和子菜单
D:逐步添加菜单(子菜单添加到菜单中,菜单添加到菜单栏中)
E:窗体中设置菜单栏(菜单栏并不是添加,而是设置)
F:设置各个菜单对应的监听事件
G:设置窗体关闭监听时间
H:设置显示窗口
代码:
- public class FrameText4 {
- public static void main(String[] args) {
- // 创建窗体对象
- final Frame f = new Frame("多级菜单");
- // 设置窗体属性
- f.setBounds(300, 300, 500, 500);
- f.setLayout(new FlowLayout());
- //获取原来的标题
- final String str = f.getTitle();
- // 创建菜单栏
- MenuBar m = new MenuBar();
- // 创建菜单
- Menu m1 = new Menu("操作");
- Menu m2 = new Menu("更改标题");
- // 创建子菜单
- final MenuItem mi1 = new MenuItem("N级菜单");
- final MenuItem mi2 = new MenuItem("M级菜单");
- MenuItem mi3 = new MenuItem("恢复标题");
- MenuItem mi4 = new MenuItem("退出");
- MenuItem mi5 = new MenuItem("打开记事本");
- // 逐步添加
- // 子菜单添加到菜单中
- m2.add(mi1);
- m2.add(mi2);
- m2.add(mi3);
- m1.add(m2);
- m1.add(mi5);
- m1.add(mi4);
- // 菜单添加到菜单栏中
- m.add(m1);
- // 窗体中设置菜单栏
- f.setMenuBar(m);
- // 设置各个菜单对应的监听事件
- mi1.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- // 更改标题栏的名称
- // 为了以后方便修改,首先获取mi1菜单的名称,再进行更改
- f.setTitle(mi1.getLabel());
- // 把窗口的标题名称改为mi1的标签
- }
- });
- mi2.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- //如mil1
- f.setTitle(mi2.getLabel());
- }
- });
- mi3.addActionListener(new ActionListener(){
- //这个跟上面2个有所不同,因为是恢复原来的标题。
- //所以得在前面创建个字符串得到开始的标题,然后直接拿来更改就可以
- public void actionPerformed(ActionEvent e) {
- f.setTitle(str);
- }
- });
- //退出系统
- mi4.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- //退出系统
- System.exit(0);
- }
- });
- //打开记事本
- mi5.addActionListener(new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- //Runtime 使应用程序能够与其运行的环境相连接
- //public static Runtime getRuntime()返回与当前 Java 应用程序相关的运行时对象。
- //public Process exec(String command)在单独的进程中执行指定的字符串命令。
- Runtime r = Runtime.getRuntime();
- try {
- r.exec("notepad");
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- }
- });
- //设置窗口关闭监听事件
- f.addWindowListener(new WindowAdapter(){
- public void windowClosing(WindowEvent e) {
- System.exit(0);
- }
- });
- //使窗体显示
- f.setVisible(true);
- }
- }
java 24 - 7 GUI之 创建多级菜单窗体的更多相关文章
- java 24 - 8 GUI之创建四则运算计算器(未校验版)
这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...
- java 24 - 6 GUI之 创建只能输入数字的文本框
需求: 创建一个含有标签和文本框的窗体,其中文本框只能输入数字 步骤:(大致上) 创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体 ...
- java 24 - 4 GUI之创建数据转移窗口
需求: 把文本框中的数据,通过点击按钮,转移到文本域中. 同时清空文本框中的数据 代码:(步骤都注释了) public class FrameDemo4 { public static void m ...
- java 24 - 5 GUI之 鼠标移动改变窗体背景颜色
需求: 创建一个可改变背景颜色的窗口,鼠标移动到按钮上,窗口背景就会改变成特定的颜色 步骤: (大致上) 创建窗口对象 创建按钮对象 添加按钮到窗口中 设置窗口关闭监听事件 设置鼠标进入按钮区域的监听 ...
- 原生JS封装创建多级菜单函数
手写一个使用原生JS封装的多级菜单的函数,满足以下几点需求. 子类层级不确定,可根据数据自动生成多级菜单. 操作便捷,只需传入一个HTML标签. 缺点: 需要满足特定的数据结构 废话不多说,展示代码. ...
- java 24 - 1 GUI之GUI的概述和基本代码
GUI(图形用户界面) GUI和CLI的区别: GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI Comma ...
- java 24 - 9 GUI 之 给窗体换图标、设置启动在屏幕中间、更换皮肤
A.首先更改窗体左上角的图片 步骤一: 创建3个包,分别建立1个类 第一个是窗体的包,窗体类:设置窗体的主要布置和功能 第二个是资源包,图片:把想要改的图案拉进来 第三个是UI界面包,UI界面设计类: ...
- java 24 - 11 GUI之制作登陆注册页面
简单说说,懒得发了... 步骤: A:首先写出登陆注册需要用到类以及代码(IO流) B:然后创建登陆窗口和注册窗口 C:各个监听事件: a:登录窗口 1.重置:把2个文本框的内容全部清空 2.注册:关 ...
- java 24 - 10 GUI 之 四则预算的数据校验
我想要在校验的过程中,如果输入到操作数中的不是数字,则弹出提醒框: 类 JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框 方法名 描述 showConfirmDial ...
随机推荐
- SAML : A SAML stack
http://nzpcmad.blogspot.co.nz/2013/06/saml-saml-stack.html You have an application – .NET, JAVA what ...
- Android UI线程和非UI线程
Android UI线程和非UI线程 UI线程及Android的单线程模型原则 当应用启动,系统会创建一个主线程(main thread). 这个主线程负责向UI组件分发事件(包括绘制事件),也是在这 ...
- app让个别界面横屏,其他的为竖屏,解决如下
app让个别界面横屏,其他的为竖屏,解决如下 APP设置里面,一定要设置可以旋转的方向 appdelegate里面重新系统方向代理 func application(application: UIAp ...
- Android性能优化的浅谈
一.概要: 本文主要以Android的渲染机制.UI优化.多线程的处理.缓存处理.电量优化以及代码规范等几方面来简述Android的性能优化 二.渲染机制的优化: 大多数用户感知到的卡顿等性能问题的最 ...
- 安卓开发基础之tween动画基本使用,代码教学
xml代码块: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro ...
- WWDC 2013 Session笔记 - UIKit Dynamics入门
本文涉及到的WWDC2013 Session有 1.Session 206 Getting Started with UIKit Dynamics 2.Session 221 Advanced Tec ...
- 关于Linux与windows传递文件乱码问题
linux下一般是采用utf-8的编码,而我们在windows上编辑文件时是gb2312的编码.所以导致中文编码会乱码.要更正这个问题实际上很简单只要把文件转换成utf-8编码格式然后再导入就ok啦. ...
- php设计模式 策略模式
策略模式: 将一组特定的行为和算法封装成类,以适应某些特定的上下文环境: 实际应用举例,假如一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告. UserStr ...
- C#复习②
C#复习② 2016年6月15日 09:08 1.C#之Symbols Identifier = (letter|'_'|'@'){letter|digit|'_'}. 需要注意: 1.Unicode ...
- 基于微软平台IIS/ASP.NET开发的大型网站有哪些呢?
首先说明一下,本文绝不是要说Microsoft平台多么好,多么牛.只是要提醒一些LAMP/JAVA平台下的同志们,微软平台不至于像你们说的,和想象的那么不堪!只是你们自己不知道而已.同时,也希望广大M ...