第9章 图形用户界面(GUI)设计
单词和缩写
GUI(Graphic User Interface)
Components Containers Layouts
Frame Panel Button Label event
DSN(Data Sequence Number)
9.1 GUI 图形用户界面设计概述(P184)
* 图形用户界面基本元件(组件)
应用程序框架(Frame) 面板(Panel)
按钮(Button) 标签(Label)
画板(Canvas) 滚动条(Scrollbar)
列表框(List) 文本域(Text Field)
文本区(Text Area) 菜单(Menu)
* 控制组件的基本使用
激活组件(action) 禁用组件(disable)
启用组件(enable) 处理事件(handleEvent)
隐藏组件(hide) 当前坐标(location)
单击鼠标(mouseDown) 拖动鼠标(mouseDrag)
移动组件(move) 重置组件(repaint)
重置尺寸(resize) 组件背景色(setBackground)
设置字型(setFont) 组件前景色(setForeground)
显示组件(show)
9.3 常用 Swing 组件
9.3.1 容器组件(P194)
1. 应用程序框架
应用程序(Application):
框架(Frame):带标题的顶层窗口。
Frame 类构造方法:
Frame(String title) // 给定窗口标题
显示框架窗口:使用 Frame 类的父类 Windows 类中的show()方法。
[实例]
import java.awt.*;
public class myFrame extends Frame{
// 创建继承 Frame 的窗口类
public myFrame(){ // 定义方法
.............
}
public static void main(String[] args){
myFrame mF = new myFrame(); // 实例化一个窗口
mF.setSize(777,555);
mF.show();
}
}
* 在 VJ++6.0 环境中创建源程序:
Applications 应用程序:编译生成 .exe 文件,
运行时有独立的窗口,使用 Form1 模板中的关闭窗口方法。
public boolean handleEvent(Event e){
switch(e.id){
case Event.WINDOW_DESTROY:System.exit(0);return true;
default:return false;
}
}
例如:正弦波 F:\JAVA\jv_zxb.java
File--New project--Applications 文件夹的
Windows Application—工程名jv_zxb,路径F:\JAVA—打开—
Project Explorer 窗口:Form1.java 改 jv_zxb.java—
打开jv_zxb.java—编辑源程序—Build菜单—Build—
指定主类 'Form1' 未发现;
debug 菜单—Start winthout debugging --launch 启动卡—
选取自定义选项 costom—编译生成类文件(.class)—
调试 Debug--Start--生成 .exe 文件。
2. 面板
1)面板(Panel):构成 Java 小程序(Applet)主窗口。
2)Java 小程序实例 zxb.htm 代码 zxb_dm.htm
3)在 VJ++6.0 环境中创建 Applet 小程序
Applet 小程序:编译生成 .class 文件,插入网页中,
浏览时包含在浏览器窗口中。
例如:正弦波 F:\JAVA\zxb.java
File--New project--Web Page 文件夹的 Applet on HTML—
工程名zxb.java,路径F:\JAVA—打开—
Project Explorer 窗口:Applet1.java 改 zxb.java—
打开zxb.java—编辑源程序—Build菜单—Build—
编译生成类文件(.class)—调试Debug--Start--
浏览器窗口Page1.htm—查看—源文件—Applet1.class改zxb.class。
9.3.10 菜单(P214)
菜单(Menu)
菜单栏(MenuBar)
主菜单(Menu) |
文件 |
图形 |
帮助 |
子菜单(MenuItem) | 新建
打开 保存 关闭 退出 |
时钟
彩条 正弦 花叶 |
* 设置窗口菜单
创建窗口框架—创建菜单栏—创建主菜单—创建子菜单—
子菜单添加到—主菜单添加到—菜单栏添加到—窗口框架—
显示窗口框架。
[示例]
Frame myFrame =new Frame("my Frame"); //创建窗口框架
MenuBar MenuBar = new MenuBar(); //创建菜单栏
Menu myMenu = new myMenu("文件"); //创建主菜单
MenuItem myMenuItem = new myMenuItem("打开"); //创建子菜单
myMenu.add(myMenuItem); // 把子菜单添加到主菜单
MenuBar.add(myMenu); // 把主菜单添加到菜单栏
myFrame.setMenuBar(MenuBar); // 把菜单栏添加到窗口框架
* 各种 AWT 组件实例
1.设置窗口菜单
子菜单—主菜单—菜单栏—窗口框架。
2.设置窗口面板
按钮—面板—窗口框架。
[实例] Java 菜单 jvcd.exe,代码 jvcd_dm.htm
9.4 鼠标和键盘事件(P221)
事件(event)处理
事件源(source)和事件监听(listeners)之间的交互。
典型组件事件处理
[实例] 菜单事件应用程序
实现菜单退出事件:
定义退出子菜单项—监听菜单事件—调用处理程序—处理菜单事件。
Java 菜单 jvcd.exe,代码 jvcd_dm.htm
MenuItem MenuFileExit = new MenuItem(); // 定义退出子菜单项
MenuFileExit.addActionListener
(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){ //监听菜单事件
MenuFileExit_actionPerformed(e); //调用处理程序
}
});
void MenuFileExit_actionPerformed(ActionEvent e){
System.exit(0); //处理菜单事件
}
第10章 Java 的多线程
1.CPU 时间分割
实现同时运行多任务、多线程。
——————| | ——————| | ——————| | ————————| | ——————|→t |
子任务1/线程1 | 子任务2/线程2 | 子任务3/线程3 | ||
任务1/进程1/程序1 | 任务2/进程2/程序2 | 任务3/进程3/程序3 |
2.多任务:操作系统能同时运行多个进程。
一个进程可以同时执行多个线程。
3.多线程:程序分割成多个独立的程序段作为子任务。
sleep()线程休眠方法(P )
public void run(){
Thread.sleep(1000);
}
线程休眠 1000 毫秒。
第11章 Java 多媒体技术
图形和图像处理
设置图形颜色
[实例 ] 变色彩条(P )
绘制图形实例
[实例 ] 画图工具(P )
图像文件显示
[实例 ] 彩条图像(P )
11.2 动画
动态显示图像
时钟针转一周360°,时钟针每秒转过的角度:
秒针 6(度/秒),分针 0.1(度/秒),时针 1/120(度/秒)。
第12章 Java 应用实例
3 |
构造 Java 应用程序 和 小程序框架 |
|
4 |
动态演示正弦波的 Java 小程序 |
zxb_s |
5 |
动态演示几种正弦波的 Java 应用程序 |
jzxb jzxb_dm zfzxb |
6 |
烟花怒放:yhnf.class Java Applet: 雪花飘飘 xhpp_Apl 圆窗方点 |
|
日期时间 |
电影序幕 dyxm 万年日历:wyrl |
|
7 |
跟随鼠标特效 |
文字跟随鼠标 wzgsb 时钟跟随鼠标 szgsb |
文字特效 | 旋转文字 波动文字 七彩文字 | |
|
Java 菜单应用程序 |
jvcd.exe jvcd_dm |
8 |
动态演示 Java 语言图形程序设计 |
jtcs.exe jtcs.htm jtcs1.exe jtcs1.htm |
变色彩条 彩条图像 |
bsct1.htm bsct1_dm | |
9 |
画图工具 | htgj.exe htgj_dm hztxcx.htm |
10 | 日历时钟 | rlsz szys |
11 | 网络编程:测主机名 | wlbc |