Java Applet实验报告.docx

上传人:b****6 文档编号:7198578 上传时间:2023-01-21 格式:DOCX 页数:13 大小:61.68KB
下载 相关 举报
Java Applet实验报告.docx_第1页
第1页 / 共13页
Java Applet实验报告.docx_第2页
第2页 / 共13页
Java Applet实验报告.docx_第3页
第3页 / 共13页
Java Applet实验报告.docx_第4页
第4页 / 共13页
Java Applet实验报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Java Applet实验报告.docx

《Java Applet实验报告.docx》由会员分享,可在线阅读,更多相关《Java Applet实验报告.docx(13页珍藏版)》请在冰豆网上搜索。

Java Applet实验报告.docx

JavaApplet实验报告

实验项目二JavaApplet设计

实验目的:

1.了解Applet的生命周期和绘图周期,理解Applet与浏览器之间的关系与交互过程;

2.了解Java的绘图机制,及实现更为出色绘图效果的Java2D

3.学会编写Applet程序。

实验要求:

1.上机实验前,仔细阅读实验指导书,按照每一个实验题目的具体要求提前完成准备工作,如:

查找资料、设计算法、写出全部源程序,做好预习笔记,做到有准备地上机。

2.上机实验课内,积极调试及修改程序。

得到正确运行结果后,积极主动要求指导教师验收程序,回答指导教师提出的问题。

3.上机实验课后,学生应根据实验数据及结果,完成实验报告。

实验报告是评定实验成绩的重要组成部分。

完成的实验报告交给实验小组组长,实验小组组长收齐本组的实验报告后统一交指导教师审阅评定。

4.每次上交的实验报告每个实验小组必须有1/5的成员为打印版的实验报告,其他成员可上交电子版的实验报告。

由实验小组组长确定交打印版的成员。

实验内容:

任务1.编写一个JavaApplet程序,该程序使用drawLine方法绘制一个5x9的网格。

请提出你的探究问题并回答。

importjava.awt.*;

importjavax.swing.*;

importjava.applet.*;

importjava.awt.Graphics;

 

publicclassGraphicsTesterextendsApplet{

publicvoidpaint(Graphicsg){

resize(200,500);

super.paint(g);

g.setColor(Color.blue);//callsuperclass'spaintmethod

g.drawLine(10,10,100,10);

g.drawLine(10,20,100,20);

g.drawLine(10,30,100,30);

g.drawLine(10,40,100,40);

g.drawLine(10,50,100,50);

g.drawLine(10,60,100,60);

g.drawLine(10,10,10,60);

g.drawLine(20,10,20,60);

g.drawLine(30,10,30,60);

g.drawLine(40,10,40,60);

g.drawLine(50,10,50,60);

g.drawLine(60,10,60,60);

g.drawLine(70,10,70,60);

g.drawLine(80,10,80,60);

g.drawLine(90,10,90,60);

g.drawLine(100,10,100,60);

}

}

问题:

如何改变窗口的大小?

答:

在编译的过程中提示applet标记需要宽度。

但是定义了以后用appletviewerMyApplet.html

时却并未显示,setSize();这个函数并不是applet的函数,通过XX查到用voidreset();函数,这样就可以变化窗口的大小了。

任务2.编写一个JavaApplet小应用程序,该程序随机产生一个圆半径,然后显示该圆的半径、周长和面积。

最后,说说你程序设计中体现的面向对象的编程思想。

提示:

使用方法Math.random()可以产生一个双精度型(0,1)的随机数。

importjava.awt.*;

importjavax.swing.*;

importjava.applet.*;

importjava.awt.Graphics;

classyuan{

privateintbanjing;

privateintmian;

privateintzhouchang;

publicvoidyuan(intx)

{banjing=x;}

publicvoidmianji()

{

mian=(int)3.14*banjing*banjing;

}

publicvoidsuanzhouchang()

{zhouchang=2*(int)3.14*banjing;}

publicintgetbanjing()

{returnbanjing;}

publicintgetmianji()

{returnmian;}

publicintgetzhouchang()

{returnzhouchang;}

}

publicclassGraphicsTesterextendsApplet{

publicvoidpaint(Graphicsg){

this.resize(1000,1000);

super.paint(g);//callsuperclass'spaintmethod

yuanyuan1=newyuan();

doubler=Math.random()*300;

inta=(int)r;

yuan1.yuan(a);

yuan1.mianji();

yuan1.suanzhouchang();

intbanjing=yuan1.getbanjing();

g.setColor(Color.red);

g.drawString("半径:

"+yuan1.getbanjing(),25,25);

g.drawString("面积:

"+yuan1.getmianji(),25,55);

g.drawString("周长:

"+yuan1.getzhouchang(),25,85);

g.setColor(Color.blue);

g.fillOval(120,55,banjing,banjing);

}

}

 

任务3.建立JavaApplet小应用程序,随机产生5个数,然后以条形图的形式来表示这5个数。

importjava.awt.*;

importjavax.swing.*;

publicclassGraphicsTesterextendsJApplet{

intshu1=(int)(Math.random()*500);//不要放进paint函数中否则移动就会

intshu2=(int)(Math.random()*500);//重新画图

intshu3=(int)(Math.random()*500);

intshu4=(int)(Math.random()*500);

intshu5=(int)(Math.random()*500);

Stringa=String.valueOf(shu1);

Stringb=String.valueOf(shu2);

Stringc=String.valueOf(shu3);

Stringd=String.valueOf(shu4);

Stringe=String.valueOf(shu5);

//重载JApplet类的paint方法,参数是Graphics类的对象,是由浏览器传递过来的

publicvoidpaint(Graphicsg){

super.paint(g);//调用其超类JApplet类的paint方法

this.resize(500,500);

g.setFont(newFont("SansSerif",Font.BOLD,12));

g.setColor(Color.red);

g.drawString(a,0,500-shu1-20);

g.fillRect(0,500-shu1,100,shu1);

g.setColor(Color.yellow);

g.drawString(b,100,500-shu2-20);

g.fillRect(100,500-shu2,100,shu2);

g.setColor(Color.blue);

g.drawString(c,200,500-shu3-20);

g.fillRect(200,500-shu3,100,shu3);

g.setColor(Color.green);

g.drawString(d,300,500-shu4-20);

g.fillRect(300,500-shu4,100,shu4);

g.setColor(Color.black);

g.drawString(e,400,500-shu5-20);

g.fillRect(400,500-shu5,100,shu5);

}

}

 

任务4.(选作)使用JApplet实现某一门课程的分数录入系统,界面包括学号、姓名、班级、班号、成绩的输入域和一个录入按扭。

当用户单击录入按扭时,程序检查各输入域中是否有非空的数据,若有空域则抛出一个Exception对象;同时程序检查成绩输入域,如果不是数值信息,或是负的数值信息,也抛出相应的异常。

在抛出异常之前应提供详细的信息说明,从而使使用该程序的用户了解所出现的问题,同时考虑上述异常出现时程序应该如何处理。

请提出你的探究问题并回答。

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjavax.swing.event.*;

importjava.lang.*;

classActionHandle{

publicJButtonbut1=newJButton("显示");

publicJButtonbut2=newJButton("重置");

publicJTextFieldtext1=newJTextField();

publicJTextFieldtext2=newJTextField();

publicJTextFieldtext3=newJTextField();

publicJTextFieldtext4=newJTextField();//声明一个按钮

publicJLabellabnumber=newJLabel();

publicJLabellabclass=newJLabel();

publicJLabellabname=newJLabel();

publicJLabellabmark=newJLabel();

publicJTextArealabinfo=newJTextArea();//声明一个标签

publicJPanelpan=newJPanel();

privateStringword;

publicActionHandle(){

Fontfnt=newFont("Serief",Font.ITALIC+Font.BOLD,12);

labnumber.setFont(fnt);//设置标签的显示字体

labnumber.setText("学号");//设置默认显示文字

labclass.setFont(fnt);//设置标签的显示字体

labclass.setText("班级");

labname.setFont(fnt);//设置标签的显示字体

labname.setText("姓名");

labmark.setFont(fnt);//设置标签的显示字体

labmark.setText("成绩");

labinfo.setLineWrap(true);

labinfo.setFont(fnt);//设置标签的显示字体

labinfo.setText("分数系统欢迎您");

but1.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==but1)

{

Stringstr1=text1.getText();

Stringstr2=text2.getText();

Stringstr3=text3.getText();

Stringstr4=text4.getText();

Stringstr5=panduan(str1,str2,str3,str4);

labinfo.setText(str5);

}

}

});

but2.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente)

{if(e.getSource()==but2)

{

text1.setText("");

text2.setText("");

text3.setText("");

text4.setText("");

labinfo.setText("分数系统欢迎您");

}

}

});

}

 

publicStringpanduan(Stringa,Stringb,Stringc,Stringd)

{

Stringword="";

Stringword1="";

Stringword2="";

Stringword3="";

Stringword4="";

Stringword5="";

if(a.length()<=0)

{word1="学号不能为空";}

else

if(b.length()<=0)

{word2="班级不能为空";}

else

if(c.length()<=0)

{word3="姓名不能为空";}

else

if(d.length()<=0)

{word4="成绩不能空";}

elseif(isNumeric(d))

{word4="成绩只能为正数";}

else{word5="您的信息是"+"学号"+a+"姓名"+b+"班级"+c+"分数"+d;}

word=word1+word2+word3+word4+word5;

returnword;

}

publicstaticbooleanisNumeric(Stringstr){

for(inti=str.length();--i>=0;){

if(!

Character.isDigit(str.charAt(i))){

returntrue;

}

}

returnfalse;

}

}

publicclassJAppletaextendsJApplet{

publicvoidinit(){

this.setLayout(null);

ActionHandlet1=newActionHandle();

t1.labnumber.setBounds(5,5,60,20);

t1.labclass.setBounds(5,30,60,20);

t1.labname.setBounds(5,55,60,20);

t1.labmark.setBounds(5,80,60,20);

t1.text1.setBounds(65,5,100,20);

t1.text2.setBounds(65,30,100,20);

t1.text3.setBounds(65,55,100,20);

t1.text4.setBounds(65,80,100,20);

t1.but1.setBounds(10,110,60,20);

t1.but2.setBounds(80,110,60,20);

t1.labinfo.setBounds(5,130,200,100);

this.add(t1.labnumber);

this.add(t1.text1);

this.add(t1.labclass);

this.add(t1.text2);

this.add(t1.labname);

this.add(t1.text3);

this.add(t1.labmark);

this.add(t1.text4);

this.add(t1.but1);

this.add(t1.but2);

this.add(t1.labinfo);

this.add(t1.pan);

}

}

这个实验题目里面最难得部分就是原来运行JFrame现在变成了JApplet。

原本都是向JFrame这个容器里面加东西,可是现在加上会出错,网页右上角会显示一个小红叉,大概意思是不能把JFrame里面添加容器。

这样就出现了很多错误和改变,后来把voidinit()

当成JFrame直接添加这些就没有出错。

 

思考题:

1.什么是小应用程序?

它与独立应用程序有什么区别?

小应用程序必须配合html或者用appletviewer来查看,独立程序则不用。

2.简述小应用程序的生命周期。

一开始也就是打开浏览器的时候下载用init()方法初始化,之后start进入运行,

这时候比如最小化一类活动会stop();退出浏览器则会调用destory()方法。

3.repaint()方法的功能是什么?

repaint()通过调用线程再由线程去调用update()方法清除当前显示并再调用paint()方法进行绘制下一个需要显示的内容.这样就起到了一种图片的交替显示从而在视角上形成了动画。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1