资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
高级Java程序设计实验指导书 实验项目二 Java Applet设计实验项目二 Java Applet设计实验目的:1了解Applet的生命周期和绘图周期,理解Applet与浏览器之间的关系与交互过程;2了解Java的绘图机制,及实现更为出色绘图效果的Java 2D3学会编写Applet程序。实验要求: 1. 上机实验前,仔细阅读实验指导书,按照每一个实验题目的具体要求提前完成准备工作,如:查找资料、设计算法、写出全部源程序,做好预习笔记,做到有准备地上机。2. 上机实验课内,积极调试及修改程序。得到正确运行结果后,积极主动要求指导教师验收程序,回答指导教师提出的问题。3. 上机实验课后,学生应根据实验数据及结果,完成实验报告。实验报告是评定实验成绩的重要组成部分。完成的实验报告交给实验小组组长,实验小组组长收齐本组的实验报告后统一交指导教师审阅评定。4. 每次上交的实验报告每个实验小组必须有1/5的成员为打印版的实验报告,其他成员可上交电子版的实验报告。由实验小组组长确定交打印版的成员。实验内容: 任务1.编写一个Java Applet程序,该程序使用drawLine方法绘制一个5x9的网格。请提出你的探究问题并回答。 import java.awt.*;import javax.swing.*;import java.applet.*;import java.awt.Graphics;public class GraphicsTester extends Applet public void paint( Graphics g ) resize(200, 500); super.paint( g ); g.setColor(Color.blue); / call superclasss paint method 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标记需要宽度。但是定义了以后用appletviewer MyApplet.html时却并未显示,setSize();这个函数并不是applet的函数,通过百度查到用void reset();函数,这样就可以变化窗口的大小了。 任务2.编写一个Java Applet小应用程序,该程序随机产生一个圆半径,然后显示该圆的半径、周长和面积。最后,说说你程序设计中体现的面向对象的编程思想。提示:使用方法Math.random()可以产生一个双精度型(0,1)的随机数。import java.awt.*;import javax.swing.*;import java.applet.*;import java.awt.Graphics;class yuanprivate int banjing;private int mian;private int zhouchang;public void yuan(int x)banjing=x; public void mianji() mian=(int)3.14*banjing*banjing; public void suanzhouchang() zhouchang=2*(int)3.14*banjing; public int getbanjing() return banjing; public int getmianji() return mian; public int getzhouchang() return zhouchang; public class GraphicsTester extends Applet public void paint( Graphics g ) this.resize(1000,1000); super.paint( g ); / call superclasss paint method yuan yuan1=new yuan(); double r=Math.random()* 300; int a=(int)r; yuan1.yuan(a); yuan1.mianji(); yuan1.suanzhouchang(); int banjing=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.建立Java Applet小应用程序,随机产生5个数,然后以条形图的形式来表示这5个数。import java.awt.*;import javax.swing.*; public class GraphicsTester extends JApplet int shu1=(int)(Math.random()*500);/不要放进paint函数中否则移动就会 int shu2=(int)(Math.random()*500);/重新画图 int shu3=(int)(Math.random()*500); int shu4=(int)(Math.random()*500); int shu5=(int)(Math.random()*500); String a=String.valueOf(shu1); String b=String.valueOf(shu2); String c=String.valueOf(shu3); String d=String.valueOf(shu4); String e=String.valueOf(shu5);/重载JApplet类的paint方法,参数是Graphics类的对象,是由浏览器传递过来的 public void paint(Graphics g) super.paint(g); /调用其超类JApplet类的paint方法 this.resize(500,500); g.setFont( new Font( 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对象;同时程序检查成绩输入域,如果不是数值信息,或是负的数值信息,也抛出相应的异常。在抛出异常之前应提供详细的信息说明,从而使使用该程序的用户了解所出现的问题,同时考虑上述异常出现时程序应该如何处理。请提出你的探究问题并回答。import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.event.*;import
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号