APPLET设计开发上课.docx
- 文档编号:24621417
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:52
- 大小:532.49KB
APPLET设计开发上课.docx
《APPLET设计开发上课.docx》由会员分享,可在线阅读,更多相关《APPLET设计开发上课.docx(52页珍藏版)》请在冰豆网上搜索。
APPLET设计开发上课
APPLET设计开发
一、前期知识
1.变量
区分大小写
2.数据类型
Java内部的数据类型可以分为四大类:
整数、浮点数、字符、布尔型。
1)整型与字符型
整型就是数学中的整数了,字符型就是字符,'0'和'a',等都是字符。
要注意两点:
1)在使用整数型变量的时候要注意其最大和最小取值范围,如果实际取值超过范围,则会出现溢出错误。
尤其在做阶乘的时候要注意。
如果机器不是很好,还要节约机器资源,只需要int型的地方,就不要用long型。
2)字符型变量的取值可以使用字符常量(用单引号阔起的单个字符),也可以用整数常数。
例如,下面的两个语句的作用完全相同:
charchar_A='A';
charchar_A=65;
2)浮点型
float和double都是浮点数据类型,程序中使用它们来代表小数。
由于计算机采用浮点来计算小数,因此就叫浮点数据类型。
也因为这个原因,计算机算出来的小数点后的n位(视具体的情况而定),与实际的数值总是会有一定的误差。
3)类型转换
Java程序中,常数或变量从一种数据类型转换到另外一种数据类型,称为类型转换。
它有两种,一种是从低位转为高位的称为缺省类型转换。
例如从char型转换到int型,从int型转换到long型,都是机器可以直接执行的。
例如:
inti=5;
longj=i;
如果把高位转化为低位,就会出现问题了。
这个道理都明白,怎么办?
有需要的时候,例如要把float转化int型,那就只有通过强制类型转化了。
例如:
floatf=3.14f;
inti=(int)f;
longj=5;
inti2=(int)j;
当然要注意的是高位转化为地位的时候,数据的范围要在地位范围内,例如不能将一个很大的整数30000转化char型,因为它超过了范围。
结果会出现错误!
3.表达式与运算符
注意++x(先自增)和x++的区别(尽量少用)
分析如下内容
intx=5,y=7;
booleanb=(x==y);
1).逻辑运算
运算符
运算
例子
解释
&
非简洁与
x&y
x,y都真时结果才为真
|
非简洁或
x|y
x,y都假时结果才为假
!
取反
!
=x
x真时为假,x假时为真
&&
简洁与
x&&y
x,y都真时结果才为真
||
简洁或
x||y
x,y都假时结果才为假
注意:
非简洁与非简洁的区别,一般等级考试中经常遇见
4.数组
数组的主要特点有三个:
1)数组是相同数据类型的元素的集合。
2)数组中的各元素是有先后顺序的,他们在内存中按照这个先后顺序连续存放在一起。
3)每个数组元素用整个的名字和它自己在数组中的顺序位置表达,例如a[0]就代表名为a的数组中的第一个元素,a[1]就就代表数组a的第二个元素,依此类推。
Java数组需要下面三个步骤:
1)声明数组
数组元素类型 数组名[];inta[];
数组元素类型[] 数组名;
2)创建数组空间
数组名=new数组元素类型[数组元素的个数];
例如:
a=newint[10];
创建数组空间的工作也可以与声明数组合在一起,用一条语句完成,例如:
intMyIntArray[]=newint[10];
你也可以在创建数组空间的时候,同时将初值给出来,例如:
intMyIntArray[]={1,2,3,4,5,6,7,8,9};
这样就创建了一个包含10个整型元素的数组,同时给出了每个元素的初值。
5.流程控制语句
能够决定其它语句的执行顺序的语句称为流程控制语句。
Java语言里有如下语句:
选择判断语句:
if-else,switch-case
循环语句:
for,while,do-while
控制语句:
break,continue,,return
注意如下语句的应用范围:
break语句、continue语句、Return语句
二、JavaApplet
JavaApplet是用Java语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE或Nescape)解释执行能够产生特殊效果的程序。
1、Javaapplet的一些特点:
◆Javaapplet程序是在WWW浏览器环境下运行,即不是完整的独立运行程序。
◆运行Javaapplet程序的解释器不是独立的软件,而是嵌在WWW浏览器中作为浏览器软件的一部分。
◆Javaapplet程序中不需要有main()方法,但是Javaapplet程序的主类必须是类库中已定义好的类Applet或JApplet的子类。
◆Javaapplet程序可以直接利用浏览器或者appletviewer运行图形用户界面,而Javaapplication程序必须另外书写专门代码来创建自己的图形界面。
2、Applet的基本工作原理
编译好的字节码文件保存在特定的WWW服务器上,同一个或另一个WWW服务器上保存着嵌入了该字节码文件名的HTML文件。
当某一个浏览器向服务器请求下载嵌入了Applet的HTML文件时,该文件从WWW服务器上下载到客户端,由WWW浏览器解释HTML中的各种标记,按照其约定将文件中的信息以一定格式显示在用户屏幕上。
当浏览器遇到HTML文件中的特殊标记,表明它嵌有一个Applet时,浏览器回根据这个Applet的名字和位置自动把字节码从WWW服务器上下载到本地,并利用浏览器本身拥有的Java解释器直接执行该字节码。
即:
1),.class和HTML保存在服务器
2),当浏览器向服务器请求下载嵌入了Applet的HTML文件时。
3),下载到客户端后,由浏览器解释HTML中的各种标记并显示在用户屏幕上,当浏览器遇到HTML文件中的一个特殊标记时,表明嵌有Applet程序,浏览器会根据Applet名字和位置把其字节码文件从WWW服务器上下载到本地。
4),利用浏览器本身拥有的Java解释器执行该字节码。
3Applet的生命周期
●加载applet
•创建applet的实例
•applet自身初始化
•applet开始运行
●离开和返回Applet所在的页面
•Applet停止/applet开始运行
●重新加载Applet
●退出浏览器
•停止运行并释放所有资源。
关键Applet方法
publicclassSimpleextendsApplet{
...
publicvoidinit(){...}
publicvoidstart(){...}
publicvoidpaint{...}
publicvoidstop(){...}
publicvoiddestroy(){...}
...
}
init()
Applet加载(重加载)时,首先调用方法,执行基本初始化,如设置Layout,数据初始化等。
start()
开始Applet的执行,使Applet成为激活状态。
在加载Applet或每次显示该Applet时都要调用。
stop()
停止Applet的运行。
当离开该Applet所在的页面或关闭浏览器时调用。
Applet可调用该方法停止线程。
destroy()
关闭浏览器时彻底终止Applet,为卸载Applet做最终清理。
Applet的显示
Applet本质上是图形方式。
当Applet每次刷新其显示时,浏览器都调用paint()方法。
paint()把java.awt.Graphics类的实例作为参数。
该实例包含了Applet所在Panel的图形上下文信息。
paint(Graphicsg)
向Applet中画图、画图象,显示字符串。
当Applet初次显示或更新时,都将调用该方法。
repaint()
调用该方法将通知系统改变显示,系统将调用
update()方法。
update(Graphicsg)
清除当前的显示并调用paint()方法。
Applet的创建
importjava.applet.*;//引入applet包
publicclassMyJavaAppletextendsApplet
{
…………
}
⏹说明:
⏹主类必须是Applet的子类,是public类型的,应以与类名一致的文件名存盘。
⏹Applet是Panel的子类,因此可以在Applet上添加组件,设计图形用户界面,使得用户可以在web页面中进行交互操作。
⏹Applet是由浏览器调用的,不需要main方法
在HTML文件中嵌入JavaApplet,用APPLET>和
例如:
FirstApplet.java
importjava.applet.*;
importjava.awt.*;
publicclassFirstAppletextendsApplet
{
publicvoidinit()
{setBackground(Color.white);//背景
//setBackground(newColor(0,128,0));
play(getCodeBase(),"2.AU");//声音
}
publicvoidpaint(Graphicsg)
{
g.setColor(Color.blue);
g.drawString("程序演示",25,25);
g.setColor(Color.red);
g.setFont(newFont("宋体",Font.BOLD,36));
g.drawString("改变字体后输出",25,100);
inta,b,c;
a=10;
b=20;
c=a+b;
g.drawString("C变量的当前值"+c,25,200);
showStatus("aaaaaaaaaaaaaaaaaaaaaaa");
play(getDocumentBase(),"2.AU");//声音
}
}
网页文件:
Applet类的层次关系
类Applet
publicURLgetCodeBase()
获得基URL。
这是包含此applet的目录的URL。
返回:
包含此applet的目录的基URL。
publicURLgetDocumentBase()
获取嵌入此applet的文档的URL。
publicvoidplay(URL url,
String name)
播放音频剪辑
publicvoidshowStatus(String msg)
请求将参数字符串显示在“状态栏”中。
三:
字体
java.awt.Font
字段:
BOLD、ITALIC、PLAIN
构造函数:
publicFont(String name,
int style,
int size)
Fonta=newFont(“宋体”,Font.BOLD,30)
给其他控件设置字体
g.setFont(a) ;
textbox1.setFont(a) ;
四:
颜色
java.awt.color
字段:
BLACK、RED、PINK、ORANGE、YELLOW、GREEN、BLUE、CYAN、WHITE等
构造方法
publicColor(int r,
int g,
int b)
创建具有指定红色、绿色和蓝色值的不透明的sRGB颜色,这些值都在(0-255)的范围内。
Colora=newColor(20,155,50)
方法
publicabstractvoidsetColor(Color c)
将此图形上下文的当前颜色设置为指定颜色。
使用此图形上下文的所有后续图形操作均使用这个指定的颜色。
例如g.setColor(Color.red);
g.setColor(newColor(20,90,100));
publicvoidsetBackground(Color c)
设置组件的背景色。
publicvoidsetForeground(Color c)
设置组件的前景色。
五:
绘制图形
见课本
importjava.applet.*;
importjava.awt.*;
publicclassFirstAppletextendsApplet
{
intx,y;//applet
intx0,y0;//圆心
intr;
publicvoidinit()
{
setBackground(newColor(0,128,0));
x=getSize().width;
y=getSize().height;
x0=0;
y0=0;
r=5;
//设定1=20像素,即5=5*20=100
}
publicvoidpaint(Graphicsg)
{
g.setColor(Color.red);
g.drawString("程序演示",25,25);
g.drawLine(20,y/2,x-40,y/2);
g.drawLine(x/2,20,x/2,y-40);
g.drawLine(x-40-10,y/2-10,x-40,y/2);
g.drawLine(x-40-10,y/2+10,x-40,y/2);
g.drawLine(x/2+20,y/2,x/2+20,y/2-10);
g.drawString("0",x/2-10,y/2+13);
g.drawString("1",x/2+18,y/2+15);
//***********画圆
r=r*20*2;//变成像素,宽、高。
x0=x/2-r/2;//圆心转化为左上角坐标
y0=y/2-r/2;
g.drawOval(x0,y0,r,r);
//***********画圆
//实训1:
圆心不在原点如何处理?
//实训2:
根据a和b的值及圆心,画椭圆。
//实训3:
画直线:
y=kx+b或ax+by+c=0,其中a,b不同时为0
//实训4:
求一元二次方程ax^2+bx+c=0的实根?
说明:
判别式:
b^2-4ac,<0无实根,=0两个相等实根
//>0两个不相等的实根。
解为(-b+-(b^2-4ac)^1/2)/2a
//拓展:
判别式:
b^2-4ac,<0无实根
//回家完成绘制抛物线。
showStatus("09软件");
}
}
抛物线标准方程:
y^2=+-2px(p>0)或x^2=+-2py(p>0)
抛物线一般方程:
y=ax^2+bx+c顶点坐标为:
(-b/2a,(4ac-b^2)/4a)
六图像显示
1、图像对象:
Image
Imagepic;
Applet中加载图像的方法:
publicImagegetImage(URL url,
String name)
返回能被绘制到屏幕上的Image对象。
用于从文件加载图像到内存。
pic=getImage(getCodeBase(),”abc.jpg”);
Graphics类中显示图像的方法:
drawImage(Image img,int x,int y,ImageObserver observer)
绘制指定图像中当前可用的图像。
drawImage(Image img,int x,int y,int width,int height,ImageObserver observer)
绘制指定图像中已缩放到适合指定矩形内部的图像。
importjava.applet.*;
importjava.awt.*;
//目的:
1:
图像的显示。
2:
验证界面离开后,paint重新执行。
publicclassPicAppletextendsApplet
{
Imagepic;
StringpicStr[];
intx,y,i=0;
publicvoidinit()
{
setBackground(newColor(0,128,0));
x=getSize().width;
y=getSize().height;
picStr=newString[4];
picStr[0]="8ball_on_shadow.jpg";
picStr[1]="Azul.jpg";
picStr[2]="finished_fla_stage.jpg";
picStr[3]="WindowsXP.jpg";
pic=getImage(getCodeBase(),picStr[0]);
}
publicvoidpaint(Graphicsg)
{
i=i+1;
if(i>3)
i=0;
pic=getImage(getCodeBase(),picStr[i]);
g.drawImage(pic,0,0,500,300,this);
showStatus("09软件");
}
}
//使用命令按钮切换图像
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassPicApplet1extendsAppletimplementsActionListener
{
Imagepic;
StringpicStr[];
intx,y,i=0;
ButtonbtnOK;
publicvoidinit()
{
setBackground(newColor(0,128,0));
x=getSize().width;
y=getSize().height;
picStr=newString[8];
for(i=0;i<8;i++)
{
picStr[i]="a"+i+".jpg";
}
btnOK=newButton("画图");
add(btnOK);
btnOK.addActionListener(this);
}
publicvoidpaint(Graphicsg)
{
g.drawImage(pic,0,0,x,y,this);
g.drawString(picStr[i],25*i,100);
showStatus("09软件");
}
publicvoidactionPerformed(ActionEvente)
{
i=i+1;
if(i>7)
i=0;
pic=getImage(getCodeBase(),picStr[i]);
repaint();
}
}
自行完成如下程序
//利用选择框输出图形
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassPicApplet1extendsAppletimplementsActionListener
{
Imagepic;
intx,y,i=0;
ButtonbtnOK;
ChoiceColorChooser=newChoice();
publicvoidinit()
{
setBackground(newColor(0,128,0));
x=getSize().width;
y=getSize().height;
ColorChooser.add("a0.jpg");
ColorChooser.add("a1.jpg");
ColorChooser.add("a2.jpg");
add(ColorChooser);
btnOK=newButton("画图");
add(btnOK);
btnOK.addActionListener(this);
}
publicvoidpaint(Graphicsg)
{
g.drawImage(pic,0,0,x,y,this);
g.drawString(ColorChooser.getSelectedItem(),25*i,100);
showStatus("09软件");
}
publicvoidactionPerformed(ActionEvente)
{
pic=getImage(getCodeBase(),ColorChooser.getSelectedItem());
repaint();
}
}
与用户交互,画图
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclasscomAppletextendsAppletimplementsActionListener
{
ButtonbtnOK;
TextFieldtxtX0,txtY0,txtR;
LabellabXY,labR;
intx,y;//applet
intx0,y0;//圆心
intr;
ColorbackColor,ForeColor;
publicvoidinit()
{
setBackground(newColor(0,128,0));
x=getSize().width;
y=getSize().height;
x0=0;
y0=0;
r=5;
//设定1=20像素,即5=5*20=100
btnOK=newButton("画图");
txtX0=newTextField(3);
txtY0=newTextField(3);
txtR=newTextField(3);
labXY=newLabel("圆心坐标");
labR=newLabel("半径");
backColor=newColor(255,200,255);
ForeColor=newColor(0,0,255);
labXY.setForeground(Color.red);
labR.setForeground(Color.red);
txtX0.setForeground(ForeColor);
txtY0.setForeground(ForeColor);
txtR.setFo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- APPLET 设计 开发 上课