Java 窗口菜单 jvcd.java
程序设计: 谢山水 2003.8.18
主菜单 |
文件 |
图形 |
图像 |
计算 |
帮助 |
子菜单 MenuItem |
新建 打开 保存 退出 |
时钟 彩条 正弦 花叶 |
山水 风光 视频 |
正弦 余弦 |
关于 |
// Java 窗口菜单 jvcd.java 程序设计: 谢山水 2003.8.18
// 显示窗口菜单:创建窗口框架—创建菜单栏—创建主菜单—创建子菜单—
// 子菜单添加到—主菜单添加到—菜单栏添加到—窗口框架—显示窗口框架。
// 实现菜单退出事件:定义退出子菜单项—监听菜单事件—调用处理程序—处理菜单事件。
import java.awt.*;
//导入java语言awt抽象窗口工具包的所有类
import java.awt.event.*;
// 1.Java 菜单 jvcd 继承框架 Frame
public class jvcd extends Frame{
// 2.创建菜单栏,主菜单,子菜单
MenuBar mb = new MenuBar();
Menu mn1 = new Menu(); //创建[文件]主菜单
MenuItem mi11 = new MenuItem(); //创建[新建]子菜单
MenuItem mi12 = new MenuItem();
MenuItem mi13 = new MenuItem();
MenuItem mi14 = new MenuItem();
Menu mn2 = new Menu(); //创建[图形]主菜单
MenuItem mi21 = new MenuItem(); //创建[时钟]子菜单
MenuItem mi22 = new MenuItem();
MenuItem mi23 = new MenuItem();
MenuItem mi24 = new MenuItem();
Menu mn3 = new Menu(); //创建[图像]主菜单
MenuItem mi31 = new MenuItem(); //创建[山水]子菜单
MenuItem mi32 = new MenuItem();
MenuItem mi33 = new MenuItem();
Menu mn4 = new Menu(); //创建[计算]主菜单
MenuItem mi41 = new MenuItem(); //创建[正弦]子菜单
MenuItem mi42 = new MenuItem();
Menu mn5 = new Menu(); //创建[帮助]主菜单
MenuItem mi51 = new MenuItem(); //创建[关于]子菜单
// 3.创建面板,画板实例,异常处理
Panel pn = new Panel(); //面板实例 pn
DrawPanel dp = new DrawPanel(); //画板实例 dp
public jvcd(){ //构造方法
try{jbInit();} //初始化界面
catch(Exception e)
{e.printStackTrace();} //异常处理
}
// 4.处理事件:关闭窗口
public boolean handleEvent(Event e){
switch(e.id){
case Event.WINDOW_DESTROY:System.exit(0);
return true;
default:return false;
}
}
// 5.设置AWT组件参数
private void jbInit() throws Exception{
// 6.当前窗框添加菜单栏
this.setMenuBar(mb);
mn1.setLabel("文件"); //主菜单标签
mi11.setLabel("新建"); //子菜单标签
mi12.setLabel("打开");
mi13.setLabel("保存");
mi14.setLabel("退出");
mn2.setLabel("图形"); //主菜单标签
mi21.setLabel("时钟"); //子菜单标签
mi22.setLabel("彩条");
mi23.setLabel("正弦");
mi24.setLabel("花叶");
mn3.setLabel("图像"); //主菜单标签
mi31.setLabel("山水"); //子菜单标签
mi32.setLabel("风光");
mi33.setLabel("视频");
mn4.setLabel("计算"); //主菜单标签
mi41.setLabel("正弦"); //子菜单标签
mi42.setLabel("余弦");
mn5.setLabel("帮助"); //主菜单标签
mi51.setLabel("关于"); //子菜单标签
pn.setLayout(null); //面板布局取消
pn.setBackground(SystemColor.menu);
// 7.菜单栏添加主菜单
mb.add(mn1); // 文件
mb.add(mn2); // 图形
mb.add(mn3); // 图像
mb.add(mn4); // 计算
mb.add(mn5); // 帮助
// 8.主菜单栏添加菜单项
mn1.add(mi11); // 新建
mn1.add(mi12);
mn1.add(mi13);
mn1.add(mi14);
mn2.add(mi21); // 时钟
mn2.add(mi22);
mn2.add(mi23);
mn2.add(mi24);
mn3.add(mi31); // 山水
mn3.add(mi32);
mn3.add(mi33);
mn4.add(mi41); // 正弦
mn4.add(mi42);
mn5.add(mi51); // 关于
// 9.窗口框架添加面板,画板
this.add(pn,BorderLayout.CENTER);
this.add(dp,BorderLayout.CENTER);
// 10.处理菜单事件
mi14.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
//监听菜单事件
mi14_actionPerformed(e); //调用处理程序
}
});
}
void mi14_actionPerformed(ActionEvent e){
System.exit(0); //系统退出
}
// 11.主程序
public static void main(String[] args){
jvcd awtShowFrame = new jvcd();
awtShowFrame.setSize(800,600);
awtShowFrame.setTitle
("Java 语言程序设计 窗口框架菜单 谢山水 2003.8.18");
awtShowFrame.show();
}
}
// 12.定义画板类,定义画图方法
class DrawPanel extends Panel {
public void paint(Graphics g) { // 定义画图方法
g.setColor(new Color(255,0,255)); // 设置画笔为紫色
g.drawRect(5,5,780,540); // 画图纸外边框
g.setColor(new Color(0,133,255)); // 设置画笔为青色
g.drawRect(15,15,760,520); // 画图纸内边框
g.drawRect(16,16,758,518);
g.drawRect(17,17,756,516);
g.drawRect(18,18,754,514);
// 13.输出文字
Font fnt20 = new Font("TimesRoman",Font.PLAIN,20);
Font fnt40 = new Font("宋体",Font.BOLD,40); // 创建字体对象
g.setFont(fnt20); // 设置当前字体
g.setColor(new Color(255,0,255));
g.drawString("Java TXCXSJ",340,170); // 紫字
g.setFont(fnt40); // 设置当前字体
g.setColor(new Color(0,0,255));
g.drawString("Java 语言图形程序设计",190,260);// 蓝字
g.setFont(fnt20); // 设置当前字体
g.setColor(new Color(0,133,0));
g.drawString("程序设计: 谢山水",320,340); // 绿字
g.drawString("2003年8月18日",340,390);
// 14.设置背景橙色.
setBackground(new Color(133,255,0));
}
}