java实验指导.docx
- 文档编号:24313422
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:42
- 大小:73.56KB
java实验指导.docx
《java实验指导.docx》由会员分享,可在线阅读,更多相关《java实验指导.docx(42页珍藏版)》请在冰豆网上搜索。
java实验指导
实验1 简单Java程序调试
1.1实验目的
(1)掌握Java应用程序和JavaApplet程序的调试步骤;
(2)了解Java程序的基本组成结构;
(3)了解字符方式和图形方式下数据的输出方法。
1.2知识要点
1.2.1Java编程运行环境的安装
(1)在根据自己的操作系统下载安装程序,按安装说明进行安装。
(2)设置环境变量。
以WinXP为例,在“我的电脑”上点右键,打开属性→高级→环境变量→系统变量,选中变量path进行编辑,在后面加入“;C:
\j2sdk1.4.2\bin”,注意:
这里的目录C:
\j2sdk1.4.2是你安装Java的目录。
(3)打开命令提示符窗口,输入javac命令按回车,如果出现命令的使用参数说明,则表示设置正确,如果出现非法命令的错误提示,则应该重新设置。
1.2.2Java程序调试步骤
Java程序的调试分编辑、编译、运行3个步骤,见图1-1。
(1)源程序的编辑
可用记事本等文本编辑器对Java源程序进行输入和修改。
源程序文件的名字一定要与Java的主类名称保持一致。
所谓主类是指Java应用程序中含有main方法的类,JavaApplet程序中继承Applet的类。
(2)对源程序进行编译
命令格式:
javac文件名.java
编译的目的是将Java源程序转化为字节码文件,只有字节码文件才能被Java解释程序运行。
如果程序中有语法错误,则在命令行将显示出错误信息,错误信息中会指示出错的行,错误类型,用户要仔细查看错误,根据错误指示修改源程序。
每次改动程序后要重新编译,直到无错才执行程序。
(3)java应用程序的运行
命令格式:
java文件名
执行程序是执行字节码文件(.class类型的文件),但命令行在java命令后只要给出文件名即可。
运行程序后将产生输出结果,用户可检查分析结果是否正确,如果不正确,说明程序逻辑思路存在问题,检查改正逻辑错误后重新编译运行。
(4)applet程序的运行
在JavaApplet程序编译通过后,运行时必须嵌入在一个HTML文件中,因此,需要制作一个HTML文件(不妨假设名称为x.htm),文件内容中包括有Applet标记。
html文件与字节码文件通常放在同一目录下。
查看Applet运行结果有两种方法:
● 方法1:
用浏览器访问HTML文件
● 方法2:
用JDK中包含的APPLET测试程序(appletviewer)运行HTML文件。
例如:
appletviewer x.htm
1.2.3常见错误处理
错误1:
javac命令为非法
处理办法:
安装java后,path环境变量设置是否正确。
错误2:
执行javac X.java时显示找不到文件X.java文件。
处理办法:
进入到X.java所在的目录进行操作。
在当前目录下用dir显示,看是否有X.java文件,如果发现你保存的文件为X.java.txt,则说明,你保存文件时未选择所有文件类型,Windows自动给文件添加后缀。
解决办法可用如下命令将文件改名:
renameX.java.txt X.java
命令格式为:
rename旧文件名 新文件名
错误3:
文件编译通过,但运行时显示找不到类。
处理办法:
有可能文件名与类名不一致,而且类名未定义为public,例如:
以下程序文件名起名hello.java,编译通过,运行时输入javahello则出现“NoClassDefFoundError”的错误,运行输入javaHello可输出结果。
还有可能是系统的classpath环境未将当前目录作为类的搜索路径。
只要将代表当前目录的“.”放到classpath的设置值中即可。
DOS命令可用:
setclasspath=%classpath%;.
错误4:
常见程序代码问题
括号不匹配;变量未定义;访问未初始化的变量;main方法未设置为static等。
1.2.4几个常用DOS命令
(1)显示当前目录下有哪些文件
命令格式:
dir
(2)更改当前盘
命令格式:
盘符:
例如将当前盘改为D盘用如下命令。
C:
\>D:
D:
\>
(3)进入当前目录下某个子目录
命令格式:
cd子目录名
例如,以下命令进入xyz子目录
D:
\>CDxyz
D:
\xyz>
(4) 设置path路径(假设JDK安装在d盘的jdk14文件夹下
path=%path%;d:
\jdk14\bin
1.2.5Java程序的特点
(1)任何程序代码均封装在类中。
(2) 主类的名称与源程序的文件名保持一致。
(3) 严格区分大小写。
(4) Java应用程序的特点
特点1:
main方法作为程序执行入口
特点2:
在DOS命令方式下执行
(5)JavaApplet程序的特点
特点1:
applet程序必须继承Applet类;
特点2:
Applet程序在HTML页面文件中运行。
1.2.6Java语言的特点
● 简单易学
● 面向对象
● 分布式计算
● 健壮性
● 安全性
● 跨平台和可移植性
● 解释执行
● 多线程
● 动态性
1.2.7Java程序数据的输出显示
(1)字符方式下数据的输出
System.out.println(数据);
其中,数据可以是任何类型,利用“+”可以将字符串与任意类型数据进行拼接。
(2)图形方式下数据的绘制
g.drawString(字符串,x,y);
功能:
在x,y位置绘制一个字符串。
g.setColor(Colorc);
功能:
设置画笔的颜色。
g.drawLine(x1,y1,x2,y2)
功能:
从x1,y1到x2,y2绘制一条直线。
其中,g代表Graphics对象(画笔),x,y为输出坐标位置。
1.3样例程序
样例1:
编写应用程序输出如下三角形。
*
***
*****
*******
【参考程序】
publicclassStar
{
publicstaticvoidmain(Stringa[])
{
System.out.println(" *");
System.out.println(" ***");
System.out.println("*****");
System.out.println("*******");
}
}
程序运行结果如图1-2所示。
【编程技巧】
(1)main方法是应用程序执行入口;
(2)如何在命令控制台输出字符串。
样例2:
编写Applet程序绘制一个红色三角形,三角形中央绘制兰色文字“三角形”。
【参考程序】
(1)Applet程序
importjava.awt.*;
importjava.applet.Applet;
publicclasstriangleextendsApplet{
publicvoidpaint(Graphicsg){
g.setColor(Color.red); //设置画笔颜色为红色
g.drawLine(80,20,20,100);
g.drawLine(20,100,140,100);
g.drawLine(140,100,80,20);
g.setColor(Color.blue); //设置画笔颜色为兰色
g.drawString("三角形",65,80);
}
}
【编程技巧】
(1)如何引入某个包的类;
(2)编写Applet程序要继承Applet类;
(3)paint方法会自动执行,用画笔对象可绘制图形。
(2)HTML文件
用appletviewer查看程序运行结果如图1-3所示。
1.4上机练习
✧ 基本题
1)编写一个程序输出如下图案
****** ************* **********
** ** ** **
** ** ** **
** ** ** **
** ** ** ********
** ** ** ** **
** ** ** ** **
** ** ** ** **
***** **** **********
2)编制applet程序,绘制一个长120、宽80的红色矩形,并在矩形内部绘制一个兰色内切椭圆。
✧ 提高题
1)编写一个应用程序绘制一个如下的操作菜单。
*****************************
| 1.增加1个学生 |
| 2.显示所有学生 |
| 3.退出程序 |
| 请输入选择(1-3):
|
*****************************
2)创建一个applet程序,绘制两个同心圆,园心显示“同心”两个汉字。
实验2 Applet编程
2.1实验目的
(1)熟悉Applet的生命周期及其方法执行特点;
(2)掌握Applet图形绘制方法,如何控制图形输出时的坐标位置变化。
(3)掌握Applet参数传递;
(4)熟悉字体和颜色的控制方法;
(5)了解Applet图像显示和声音播放方法。
了解双缓冲区的应用,改进图像显示效果。
2.2知识要点
2.2.1Applet程序的执行特点
(1)在HTML页面中运行
(2) Applet作为一个对象,是由浏览器的JVM自动创建并自动按如下顺序执行其方法。
init()→start()→paint(g)
2.2.2Applet方法
Applet的常用方法见表2-1,Applet在其生命周期的各阶段将自动调用相应方法,用户可根据需要在方法内安排特定的处理代码。
表2-1Applet的常用方法
方法名
描述
init()
安排初始化处理
start()
安排启动Applet时所要做的工作
paint(g)
在Applet的界面中绘制文字、图形等
update(g)
实现Applet画面的刷新,默认清除画面后调paint(g)
repaint()
重新绘制,它将调用update(g)
stop()
安排停止Applet前所要做的工作
destroy()
安排浏览器关闭,Applet退出前所要做的工作
2.2.3Applet的图形绘制
借助Applet的“画笔”(Graphics)对象可调用表2-2所示的方法实现各类图形的绘制。
在paint方法执行时,Applet将自动将自己的“画笔”通过参数传递给方法,在其它情形下,也可以通过由父类Component继承而来的getGraphics()方法得到“画笔”。
表2-2Graphics对象的常用图形绘制方法
方法名
描述
drawString(Strings,intx,inty);
绘制文字
drawLine(intx1,inty1,intx2,inty2)
绘制直线
drawRect(intx,inty,intwidth,intheight)
绘制矩形
drawOval(intx,inty,intwidth,intheight)
绘制椭圆
drawPolygon(int[]xPoints,int[]yPoints,intnPoints)
绘制多边形
drawArc(int x,int y,int width,int height,int startAngle,int arcAngle)
绘制圆弧
drawRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)
绘制园角矩形
fillOval(intx,inty,intwidth,intheight)
绘制填充椭圆
fillRect(intx,inty,intwidth,intheight)
绘制填充矩形
fillRoundRect(intx,inty,intwidth,intheight,intarcWidth,intarcHeight)
绘制填充园角矩形
fillArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle)
绘制填充扇形
2.2.4控制颜色和字体
Color包含红、绿、蓝的组合,构造方法为:
publicColor(intRed,intGreen,intBlue)
每个参数的取值范围在0~255之间。
Color类提供了一些常用颜色常量,如:
Color.red代表红色。
定义字体对象用如下方法:
FontmyFont=newFont("宋体",Font.BOLD,12);
其中,第1个参数为字体名,第3个参数为字体大小。
第2个参数为代表风格的常量,Font类中定义了3个常量:
Font.PLAIN,Font.ITALIC,Font.BOLD分别表示普通、斜体和粗体。
借助表2-3所示的方法可设置画笔或部件使用的字体和颜色。
表2-3设置颜色和字体
方法名
描述
voidsetColor(Colorc)
设置画笔颜色
ColorgetColor()
读取画笔颜色
voidsetFont(Fontc)
设置画笔或部件字体
FontgetFont()
读取当前使用字体
voidsetBackground(Colorc)
设置部件的背景颜色
voidsetForeground(Colorc)
设置部件的前景颜色
2.2.5Applet的参数传递
为了增强Applet程序的通用性,Applet允许从HTML标记中获取参数,程序运行时,不同参数值将导致不同的运行结果。
● 通过HTML标记中的标记给它所嵌入的Applet程序传递参数。
● 在Applet程序中利用getParamter("参数名")方法获取HTML传递的参数值,结果为字符串类型。
2.2.6Applet的多媒体支持
(1)绘制图像
第1步:
定义图像对象,指出其URL位置和名称。
publicImagegetImage(URL,String)
以下是两个特殊的URL:
getCodeBase():
返回Applet字节码文件的URL地址。
getDocumentBase():
返回html文件的URL地址。
第2步:
在画面中绘制图像。
publicvoiddrawImage(Image,x,y,imageObserver)
坐标规定图像的左上角位置,最后一个参数imageObserver表示观察者,通常是applet自己,所以通常写this。
为了改进画面的绘制效果,经常利用双缓冲区绘图。
开辟一个内存缓冲区,将图像先绘制在该区域,然后,再将缓冲区的图形绘制到Applet画面。
第1步:
建立图形缓冲区:
ImagecreateImage(width,height)
第2步:
使用Image对象的getGraphics()方法得到其Graphics对象;
第3步:
利用得到的Graphics对象在内存缓冲区绘图;
第4步:
利用Applet的画笔对象的drawImage方法将内存缓冲区对应的Image绘制到Applet面板上。
(2)播放声音
第1步:
使用Applet类的getAudioClip(URL,String)方法获取AudioClip类型的对象;
第2步:
通过AudioClip接口的方法控制播放:
play():
开始播放一个声音文件,本方法每次调用,都从头开始重新播放。
loop():
循环播放当前声音文件
stop():
停止播放当前声音文件
2.3样例程序
样例1:
绘制可变大小的杨辉三角形
1
1 1
1 2 1
1 3 3 1
注:
行数有Applet参数决定,范围3~8的一个值。
【参考程序】
importjava.applet.*;
importjava.awt.*;
publicclassYanghuiextendsApplet{
introws;
publicstaticlongfac(intn){
longres=1;
for(intk=2;k<=n;k++)
res=res*k;
returnres;
}
publicstaticlongcom(intn,intm){
returnfac(n)/(fac(n-m)*fac(m));
}
publicvoidinit(){
rows=Integer.parseInt(getParameter("lines"));
}
publicvoidpaint(Graphicsg){
intx,y=10;
for(intn=0;n<=rows;n++){
x=10;
for(intm=0;m<=n;m++){
g.drawString(""+com(n,m),x,y);
x=x+40;
}
y=y+20;
}
}
}
HTML程序
【说明】本例的难点是如何控制绘制坐标的变化,同一行的输出只要改变x坐标,不同行的则改变y坐标。
【编程技巧】
(1)如何利用二重循环控制输出坐标的变化
(2)如何从Applet参数接收一个整数
样例2:
编制一个程序绘制如图2-1所示的棋盘。
【参考程序】
importjava.awt.*;
importjava.applet.*;
publicclassCheckerboardextendsApplet{
publicvoidpaint(Graphicsg){
introw; //行号
intcol; //列号
intx,y; //方框左上角的坐标
for(row=0; row<8; row++){
for(col=0; col<8; col++){
x=col*20;
y=row*20;
if((row%2)==(col%2))
g.setColor(Color.red);
else
g.setColor(Color.black);
g.fillRect(x,y,20,20);
}
}
}
}
【编程技巧】
(1)如何利用二重循环控制方框的输出坐标的变化;
(2)如何确定要绘制的方框的颜色值。
样例3:
在Applet画面中用红色大号字绘制“欢迎光临”4字,让其自左向由移动,移动到右边,再重新至左边。
【参考程序】
importjava.awt.*;
importjava.applet.*;
publicclasswelcomeextendsApplet{
intpos=10; //左边从第10个象素位置开始绘制
Imagegraph;
intw;
publicvoidpaint(Graphicsg){
Stringstr="欢迎光临";
Fontf=newFont("黑体",Font.BOLD,30);
FontMetricsfm=getFontMetrics(f);
w=fm.stringWidth(str);
g.setFont(f);
g.setColor(Color.red);
g.drawString(str,pos,40);
try{
Thread.sleep(500); //延迟
}catch(InterruptedExceptione){}
pos++;
if (pos+w>getWidth()) //至右边界回到头部
pos=10;
repaint();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 指导