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 ...
随机推荐
- Shapely中的几何图形操作
Geometric Objects object.area Returns the area (float) of the object. object.bounds Returns a (minx, ...
- JavaScript异步机制
单线程异步执行的JavaScript JavaScript是单线程异步执行的,单线程意味着代码在任务队列中会按照顺序一个接一个的执行.异步代表JavaScript代码在任务队列中的顺序并不完全等同于代 ...
- 编译安装mysql(Ubuntu10 64位)
选用较好的编译器和较好的编译器选项,这样应用可提高性能10-30%,这个对大多数程序都非常重要 Mysql的编译,不同的版本具体的配置方式是有差别的 旧版的配置形式参考 这个形式主要是使用config ...
- Android自定义ScrollView分段加载大文本数据到TextView
以下内容为原创,转载时请注明链接地址:http://www.cnblogs.com/tiantianbyconan/p/3311658.html 这是我现在碰到的一个问题,如果需要在TextView中 ...
- sqlite 增删改查
PersonDao1.java package mm.shandong.com.testsqlsqllite.dao; import android.content.Context; import a ...
- Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use.解决办法
Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. The ...
- iOS开发之多线程技术——GCD篇
本篇将从四个方面对iOS开发中GCD的使用进行详尽的讲解: 一.什么是GCD 二.我们为什么要用GCD技术 三.在实际开发中如何使用GCD更好的实现我们的需求 一.Synchronous & ...
- Spark:一个高效的分布式计算系统
概述 什么是Spark ◆ Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥 ...
- MS SQL Server2014链接MS SQL Server 2000
开发与企业应用中,好几个版本SQL Server相互链接.分布式读取与存储,需要实现sp_addlinkedserver.SQL Server 2000, SQL Server 2008, SQL S ...
- MySQL入门(四)
我好久没有写这个系列了,也确实不知道写什么.回首我学习数据库的路,最开始搞Oracle的时候其实没有搞懂Oracle,也不知道学了什么,后来学习MySQL尤其是InnoDB才大概入了门了.我最开始学习 ...