单词和缩写
init start stop destory Font Bold Italic String CodeBase
Code Width Height Pixel
9.1 Java 标准类和类中方法的调用
9.1.3 数学运算(Math)类(P169)
数学类引用格式:
Math.method(variable);
数学运算(Math)类的定义:
public final class java.lang.Math extends java.lang.Object{
......
public static double cos(double a);
public static double sin(double a);
}
9.1.4 图形(Graphics)处理类(P170)
图形(Graphics)处理类的定义:
public abstract class java.awt.graphics extends java.lang.Object{
public abstract boolean drawImage(Image img,int x,int y,
Color bgcolor,ImageObserver observer); // 显示图像
public abstract viod drawLine(int x1,int y1,int x2,int y2);//画线
public abstract viod setColor(Color c); //设置当前颜色
public abstract viod setFont(Font font); //设置当前字体
[示例 9.4] 在图形对象中绘制字符串
public viod paint(Graphics g){
g.drawString("Hello World!",5,5);
}
1.绘制线、矩形、椭圆(P172)
2.复制图形(P176)
copyArea(int x,int y,int width,int height,int dx,int dy);
3.清除图形
clearRect( int x,int y,int width,int height);
clearRect( 0,0,size().width,size().height); // 清除显示区
[实例 9.2] Java 矩形圆形 jvjy.exe jvjy_dm.htm(P178)
[实例 9.3] 函数计算 hsjs.exe hsjs_dm.htm(P179)
9.3 Java 语言 Applet 小程序
小程序指定宽高:size().width,size().height);适合页中调整。
应用程序指定宽高:像素点 800*600。
[实例 9.4] 正弦波 zxb.htm(P182)
* 在 HTML 中使用 Applet
<Applet
CodeBase=codebaseURL //设置路径
Code=AppletFileName //指定 包名.类名.class
Alt=AlternateText //转显提示文本
Width=pixels Height=pixels //宽高的像素点
>
</Applet>
习题 9 (P187)
9.4 编写实现绘图功能的 Applet 小程序,
动态演示水平/垂直的正弦波、多叶曲线。(P182)
编写实现绘图功能的 Application 应用程序,
动态演示水平/垂直的正弦波、多叶曲线。(P178)
补充题 使用 Java 语言的图形功能设计各种图形程序。
1)多色多叶曲线 dsdyqx.htm、换笔增叶 hbzy.htm
变色3叶曲线(bs3yqx.java):红绿蓝 ss3yqxtx
动态3色3叶曲线(dt3s3yqx.java):红绿蓝
三色3叶曲线(ss3yqx.java):红绿蓝
四色4叶曲线(ss4yqx.java):红绿蓝黄
五色5叶曲线(ws5yqx.java):红绿蓝黄青
2)多叶曲线设计考虑因素
线宽、花叶颜色、各叶片色、背景色、叶数、位置、显示速度
r,g,b:背景颜色 画笔颜色
x,y:水平移动图形 x=0--639 垂直移动图形 y=0--479
r1,r2:水平方向半径 r1=0--320 垂直方向半径 r2=0--240
i,j:心形曲线叶片 i=1--24 心形曲线弧度 j=0--2*PI
3)正弦波设计考虑因素
线宽、颜色、分段颜色、背景色、波峰数、显示速度
画图方向:向左画、向右画、向上画、向下画、同时向右和向下画
位置:水平、垂直多条正弦波
1.CPU 时间分割
实现同时运行多任务、多线程。
——————| | ——————| | ——————| | ————————| | ——————|→t |
子任务1/线程1 | 子任务2/线程2 | 子任务3/线程3 | ||
任务1/进程1/程序1 | 任务2/进程2/程序2 | 任务3/进程3/程序3 |
2.多任务:操作系统能同时运行多个进程。
一个进程可以同时执行多个线程。
3.多线程:程序分割成多个独立的程序段作为子任务。
10.1.4 sleep()线程休眠方法(P197)
public void run(){
Thread.sleep(1000);
}
线程休眠 1000 毫秒。
单词和缩写
setColor setBackground setForeground repain
TCP(Transmission Control Protocol)
UDP(User Datagram Protocol)
网络编程(P262)
Applet小程序:插入网页。
Java.net Java核心包的网络包:网络通讯(客户端、服务器端)
第1节 网络技术基础
提供适用TCP和UDP网络协议的类。
应用层 | HTTP,FTP
TCP,UDP IP 设备驱动程序 |
应用层 |
传输层 | 传输层 | |
网络层 | 网络层 | |
链路层 | 链路层 | |
物理层 (网络的物理连接设备) |
1.网络通讯协议(TCP)(P262)
点对点网络连接传输,应用程序有HTTP,FTP。
2.用户数据报协议(UDP)
数据包网络通信方式。
应用程序有ping,测试网络连接的计算机接通情况。
3.网络通信地址标识(P263)
目的计算机 |
端口(COM1) |
主机名(IP地址) |
应用程序 |
4.网络数据包的传送(P263)
应用程序 |
||
| |
||
端口8080 |
||
TCP或UDP |
||
| |
||
网络数据包 |
||
| |
||
主机名(IP地址) |
端口号 |
数据(路径/文件名) |
第2节 URL
12.2.1 URL概念(P263)
统一资源定位器URL(Uniform Resource Locator)
网上资源的指针,指向文件、目录、对象(查询数据库、搜索引擎)
主机名(IP地址) |
端口号 |
数据(路径/文件名) |
主机名分隔符(://)
端口分隔符(:)
路径/文件名分隔符(/)
12.2.2 URL类(P264)
1.构造器
URL对象是确定资源的位置。
public URL(string protocol,string host,int port,
string file) throws MalformedURLException
(协议:http,ftp、主机名、端口、主机文件、形成URL出错异常)
例如:创建URL对象
try{
URL urla=new URL("http","hostname",80,"index.html");
}catch (MalformedURLException e){......}
2.方法
public int getPort() 得到URL对象的端口号
public String getProtocol() 得到URL对象的协议名
public String getHost() 得到URL对象的主机名
public String getFile() 得到URL对象的文件名
12.2.3 URLconnection类(P265)
URLconnection类:抽象类,实现应用程序和URL间通信连接,
读写URL的资源。
abstract public void connect() throws IOException
打开与URL所指定资源的通信连接。
12.2.4 实例:从Internet下载HTML文件(P267)
创建FileOutputStream对象用于写文件
FileOutputStream fileOut=new FileOutputStream(args[1]);
第3节 InetAddress类(P269)
12.3.1 InetAddress类简介
InetAddress类:存储远程系统的IP地址。
InetAddress remoteOP=InetAddress.getByName("java.sun.com");
通过名字确定机器的IP地址。
第4节 TCP Sockets套接字编程
12.4.1 TCP Sockets基础(P270)
1.TCP Sockets是两台机器进行通信的端点,
开发“客户机/服务器”应用。
2.创建TCP Sockets需要的信息:
本地系统的IP地址。
本地应用程序正在使用的TCP端口号。
远程系统的IP地址。
远程系统应用程序相应的TCP端口号。
3.Sockets在“客户机/服务器”中的应用:
守护进程,等待请求,处理并返回结果。
4.UNIX操作系统中端口的分配:
低于1024的端口:捆绑拥有超级用户权限的应用,
高于1024的端口:动态或临时分配给客户机应用程序。
5.客户机应用程序建立Socket连接,捆绑端口(FTP 21,HTTP 80)。
12.4.2 SocketImpl类(P272)
SocketImpl类:创建客户机Socket和服务器Socket。
1.成员变量
protected FileDescriptor fd; //socket 的文件描述符对象类
protected InetAddress address; //socket 远端的IP地址
protected int port; //socket 连接的远程主机的端口号
protected int localport; //socket 连接的本地端口号
2.方法
* protected abstract void create(boolean stream)
throws IOException
创建一个流(stream)或数据报(datagram)Socket,
stream为true:创建一个流Socket
stream为fals:创建一个数据报Socket
* protected abstract void connect(string host,int port)
throws IOException
连接Socket到远程主机host上的指定端口port。
* protected abstract void bind(InetAddress host,int port)
throws IOException
捆绑Socket到IP地址为address的远程主机的指定端口port。
12.4.3 Socket类(P273)
Socket类:实现客户端的Socket的实例,执行Socket的实际工作。
1.构造器
public Socket
(String host,int port,InetAddress localAddr,intlocalPort))
throws IOException
2.方法
* public InputStream getInputstream()throws IOException
得到从Socket读取字节的输入流。
* public OutputStream getOutputstream()throws IOException
得到向Socket写字节的输出流。
12.4.4 ServerSocket类
ServerSocket类:创建TCP Socket服务器。
1.构造器(P276)
public ServerSocket(int port)throws IOException
在指定端口创建监听ServerSocket
2.方法
public int getLocalPort()
得到ServerSocket用于监听的端口号。
3.ServerSocket类的使用(P277)
在端口创建ServerSocket后,
用accept()方法等待客户的连接请求,
客户机完成连接后,打开流,处理发生的通信。
12.4.5 “客户机/服务器”通信协议的开发流程
“客户机/服务器”通信:实现通信协议的基本步骤(P277)
|
客户机 |
服务器 |
初始化 |
2.建立Socket对象 |
1.建立ServerSocket对象 |
建立链接 |
|
3.响应客户机,建立链接 |
请求响应 |
4.发出请求 |
5.响应请求 |
处理结果 |
7.接收处理结果 |
6.返回处理结果 |
中断链接 |
8.直到结束对话 |
9.中断链接,结束通信 |
第5节 UDP Socket编程
12.5.1 UDP Socket基础(P282)
1.概念
TCP(Transport Control Protocol):
传输控制协议,面向连接,可靠连接。
UDP(User Datagram Protocol):
用户数据报协议,无连接,效率高。
2.IP多点传送
点对点:单点传播。
多点传送:有限广播,适合高带宽,发送网络音视频。
无限点传送:无限广播。
12.5.2 DatagramPacket类
DatagramPacket类(P284)
创建发送的数据报,读取数据报中的数据。
1.构造器
public DatagramPacket
(byte[] ibuf,int length,InetAddress iaddr,int iport);
编码信息数据的字节数组,长度(64kB),
接收方的主机名和IP地址,端口
2.方法
public synchronized byte[] getData();
得到接收数据报中的数据
第6节 RFC
12.6.1 RFC概述(P289)
RFC(Request For Comments):
请求注解,Internet标准草案,可以实现所有的网络应用。
12.6.2 利用WhoIs 协议查询Internet 域名(P290)
1.原理
访问InterNIC站点 http://www.internic.net/whois.html
WhoIs 服务器从WhoIs数据库中查询所输入的内容;
2.编程方法
用Socket类的构造器创建流Socket;
public Socket(string host,int port)throws IOException
连接主机"whois.intrenic.net"的端口43;
创建Socket时发生I/O错误,则抛出IOException异常;
用getInputStream()和getOutputstream()方法分别得到
该Socket的输入流和输出流,用于对该Socket进行数据读写;
完成Socket通信后,先关InputStream()和Outputstream(),
后关Socket。
12.2 图形和图像处理
12.2.1 设置图形颜色
[实例 12.2] 变色彩条(P255)
12.2.2 绘制图形实例
[实例 12.3] 画图工具(P256)
12.2.3 图像文件显示
[实例 12.4] 彩条图像(P261)
12.3 动画制作
12.3.2 动态显示图像
时钟针转一周360°,时钟针每秒转过的角度:
秒针 6(度/秒),分针 0.1(度/秒),时针 1/120(度/秒)。
Visual J++6.0 主界面
Visual J++6.0 |
||||||||
文件 |
编辑 |
查看 |
项目 |
编译 |
调试 |
工具 |
窗口 |
帮助 |
新建 |
增加 |
打开 |
保存 |
|
开始 |
断开 |
结束 |
|
查找 |
|
工程 |
属性 |
工具箱 |
任务 |
|
调试 |
编辑 |
工具箱 |
Visual J++6.0 编辑区 |
工程 |
||||||
HTML |
Solution |
|||||||
任务列表 |
|
VJ++编制动态HTML程序,
可将Java应用程序封装为.exe或cab(cabinet),
提供特殊的JVM。
1.VJ++6.0 创建 Applications 应用程序的过程
Applications 应用程序:编译生成 .exe 文件,
运行时有独立的窗口。
例如:窗口框架 F:\JAVA\ckkj.java
1.1 创建窗口框架(ckkj)项目
File--New project--Applications 文件夹的
Windows Application—项目名ckkj,路径F:\Java—打开。
1.2 编辑 ckkj.java 代码
Project Explorer 窗口:Form1.java 改名 ckkj.java—查看—代码—
打开ckkj.java—输入代码。
编辑源程序(演示 Form1 模板未关闭时,有部分代码不能删除)
1.3 编译 ckkj.java 代码生成类文件(.class)
Build菜单—Build—指定主类 'Form1' 未发现。
1.4 调试生成可执行文件
debug 菜单—Start winthout debugging --launch 启动卡—
选取自定义选项 costom——生成 .exe 文件。
2.VJ++6.0 创建 Applet 小程序的过程
Applet 小程序:编译生成 .class 文件,插入网页中,
浏览时包含在浏览器窗口中。
例如:正弦波 F:\JAVA\apkj.java
2.1 创建小程序框架(apkj)项目
File--New project--Web Page 文件夹的 Applet on HTML—
项目名apkj,路径F:\Java—打开。
2.2 编辑 apkj.java 代码
Project Explorer 窗口:Applet1.java 改 apkj.java—
打开apkj.java—编辑源程序。
2.3 编译 apkj.java 代码生成类文件(.class)
Build菜单—Build—编译生成类文件(.class)。
2.4 调试把类文件插入网页
调试Debug—Start—浏览器窗口Page1.htm—查看—源文件—
Applet1.class 改 apkj.class。
3.VJ++6.0编辑文本字号选择
tools--options--text editor--font and colors--size 16磅。