Java课程设计画随机圆_第1页
Java课程设计画随机圆_第2页
Java课程设计画随机圆_第3页
Java课程设计画随机圆_第4页
Java课程设计画随机圆_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

滁州学院课程设计报告课程名称:Java面向对象程序设计设计题目:画随机圆系别:计算机信息与工程学院专业:计算机科学与技术组别:第五小组起止日期:2023年12月20日~2023年指导教师:马骏高超计算机与信息工程学院二○一一年制课程设计任务书课程设计题目画随机圆组长张侠学号2023220239班级11计专1班系别计算机与信息工程学院专业计算机科学与技术组员余静盛荣春汪道明张娟指导教师马骏高超课程设计目的进一步加深对Java语言的理解和掌握提供一个独立实践的时机培养我们在工程开发中的团队合作精神和创新意识及实践编程能力课程设计所需环境JCreatorproJdk1.6工具包课程设计任务要求功能要求:实现简单的动画具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制〔控制sleep时间〕界面要求:用JavaApplet实现课程设计工作进度方案序号起止日期工作内容分工情况012011-收集资料组员共同完成022011-编写代码组员共同完成032011-修改补充代码组员共同完成042012-编写课程设计报告组员共同完成052012-设计报告的完成组员共同完成教研室审核意见:教研室主任签字:年月日目录TOC\o"1-2"\h\z\u一.引言1二.使用工具说明12.1.总体目标12.2.Applet的工作原理12.3.Applet的工作原理图如图2-112.4.多线程机制22.5.多线程的优势2三.分析与设计33.1.题目及使用环境33.2.功能概述33.3.要实现的功能33.4.实现方式33.5.需用到的类和方法3四.代码实现4五.调试与操作说明6六.课程设计总结与体会6七.致谢6八.参考文献6一.引言Applet是基于HTML的小程序。浏览器将其暂时下载到用户的硬盘上,并在Web页翻开时在本地运行。一般的Applet只能通过appletviewer或者浏览器来运行,Java程序通过继承Applet类也可以嵌入网页运行。在JavaApplet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。Applet还提供了名为抽象窗口工具箱〔AbstractWindowToolkit,AWT〕的窗口环境开发工具。AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。目前,在网络上有非常多的Applet范例来生动地展现这些功能。多线程的目的是为了最大限度的利用CPU资源,以前所编写的程序,每个程序都有一个入口、一个出口以及一个顺序执行的序列,在程序执行过程中的任何指定时刻,都只有一个单独的执行点。事实上,在单个程序内部是可以在同一时刻进行多种运算的,这就是所谓的多线程。一个单独的线程和顺序程序相似,从概念上说,一个线程是一个程序内部的一个顺序控制流。线程并不是程序,它自己本身并不能运行,必须在程序中运行。在一个程序中可以实现多个线程,这些线程同时运行,完成不同的功能。二.使用工具说明2.1.总体目标设计一个自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制。实现简单的动画功能。2.2.Applet的工作原理含有Applet的网页的HTML文件代码中部带有<applet>和</applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。JavaApplet是用Java语言编写的一些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(IE或遨游)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。当用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。含有。

一个HTML文件增加Applet有关的内容只是使网页更加富有生气,如添加声音、动画等这些吸引人的特征,它并不会改变HTML文件中与Applet无关的元素。2.3.Applet的工作原理图如图2-1图2-1Applet的工作原理2.4.多线程机制在Java中,多线程的实现有两种方式:扩展类实现接口每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一个守护程序。当某个线程中运行的代码创立一个新Thread对象时,该新线程的初始优先级被设定为创立线程的优先级,并且当且仅当创立线程是守护线程时,新线程才是守护程序。当Java虚拟机启动时,通常都会有单个非守护线程〔它通常会调用某个指定类的main方法〕。Java虚拟时机继续执行线程,直到以下任意一个情况出现时为止:因此,不管是扩展Thread类还是实现Runnable接口来实现多线程,最终还是通过Thread的对象的API来控制线程的如图2-1,熟悉Thread类的API是进行多线程编程的根底。新建状态〔New〕:新创立了一个线程对象。就绪状态〔Runnable〕:线程对象创立后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。注意:start()方法的调用后并不是立即执行多线程代码,而是使得该线程变为可运行态〔Runnable〕什么时候运行是由操作系统决定的。从程序运行的结果可以发现,多线程程序是乱序执行。因此,只有乱序执行的代码才有必要设计为多线程。Thread.sleep()方法调用目的是不让当前线程单独霸占该进程所获取的CPU资源,以留出一定时间给其他线程执行的时机。实际上所有的多线程代码执行顺序都是不确定的,每次执行的结果都是随机的。图2-1线程的状态与周期2.5.多线程的优势=1\*GB2⑴减轻编写交互频繁、涉及面多的程序的困难,如监听网络端口。=2\*GB2⑵程序的吞吐量会得到改善,同时可以监听多种设备,如网络端口、串口、并口以及其他外设。=3\*GB2⑶有多个处理器的系统,可以并发运行不同的线程,否那么,任何时刻只有一个线程在运行。Thread类本身只是线程的虚拟CPU,线程所执行的代码〔或者说线程所要完成的功能〕是通过方法run()包含在一个特定的对象中来完成的,方法run()称为线程体。实现线程体的特定对象是在初始化线程时传递给线程的。在一个线程被建立并初始化以后,Java的运行时系统就自动调用run()方法,正是通过run()方法才使得建立线程的目的得以实现。=4\*GB2⑷线程睡眠:Thread.sleep(longmillis)方法,使线程转到阻塞状态。millis参数设定睡眠的时间,以毫秒为单位。当睡眠结束后,就转为就绪Runnable状态。sleep()平台移植性好。三.分析与设计3.1.题目及使用环境课程设计题目:画随机圆开发环境:JCreatorproJdk1.6工具包编程语言:JavaHtml界面要求:用JavaApplet实现运行环境:Windows操作系统3.2.功能概述运行浏览器之后,会自动出现由小到大变换的圆,圆的位置与颜色随机,大小变到150直径时擦除,重新再出现圆,圆变换速度通过HTML文件传入的参数控制,实现简单的动画3.3.要实现的功能=1\*GB2⑴此程序为实现这些功能模块,必须首先定义画图的对象,对所要画的圆的颜色及其位置进行设置。=2\*GB2⑵此程序为实现简单的动画功能,必会使用到Therad线程机制。因此会用到实现接口Runable中的run()方法,及通过调用sleep()来显示圆的变化速度。=3\*GB2⑶此程序中,必须用到的包如下:java.applet.Applet;java.awt.Color;java.awt.Graphics;java.util.*;3.4.实现方式在Circ.java中首先调用init〔〕方法对线程和画图进行初始化并各自创立一个对象。Circ类通过实现Runnable接口,使得该类有了多线程类的特征run〔〕方法是多线程程序的一个约定。所有的多线程代码都在run方法里面。Thread类实际上也是实现了Runnable接口的类。在启动的多线程的时候,需要先通过Thread类的构造方法Thread(Runnabletarget)构造出对象,然后调用Thread对象的start()方法来运行多线程代码。实际上所有的多线程代码都是通过运行Thread的start()方法来运行的。3.5.需用到的类和方法classCirc此类用于定义一个线程和Graphics对象,并且使用init()方法将他们分别初使化,以方便在下面的程序中使用它们。run()方法此方法用于实现这个程序的大局部功能,在这个方法中定义一些根本变量以及画一个填充圆,还对圆的半径进行了设置,当线程启动后,java类的run()方法就开始执行init()方法此方法对线程和Graphics对象进行初始化以及启动线程paint()方法此方法实现的是将所画的圆显示在applet窗口的面板上四.代码实现Circ.javaimportjava.applet.Applet;importjava.awt.Color;importjava.awt.Graphics;importjava.util.*;importjavax.swing.JFrame;publicclassCircextendsAppletimplementsRunnable{Threadcircle=null;//声明一个线程对象Graphicsg;//声明一个Graphics对象publicvoidinit(){//applet初始化circle=newThread(this);g=getGraphics();circle.start();//启动线程}publicvoidrun(){//实现接口Runnable接口中的run()方法 inti=1,t,m,n,R,G,B; Randomr1=newRandom(); while(true){if(i<=75){m=(int)(Math.random()*700);//定义一个在700之内的下标 n=(int)(Math.random()*700); R=r1.nextInt(255);//定义R值的参数G=r1.nextInt(255);//定义G值的参数 B=r1.nextInt(255);//定义B值的参数 newColor(R,G,B); g.drawOval(m,n,i,i);//画圆的边框 g.fillOval(m,n,i,i);//填充圆g.setColor(newColor(R,G,B));//重新设置画笔的颜色i=i+10;}elsei=0;try{t=Integer.parseInt(getParameter("s"));//获得从HTML中传递的sleep参数circle.sleep(t);}catch(InterruptedExceptione){System.out.print(e.getMessage());//输出异常}repaint();//重画}} publicvoidpaint(Graphicsg) { } publicstaticvoidmain(String[]args){ Circc=newCirc(); }}Circle.html<appletCode="Circ.class"height="700"width="700"><paramname=svalue="1000">//sleep参数值的传递</applet>运行结果显示如图4-1,4-2,4-3所示图4-1随机产生的圆1位置,颜色随机图4-2随机产生的圆2位置,颜色随机图4-3随机产生的圆3位置,颜色随机五.调试与操作说明这个小程序操作简单、通俗易懂,是一个Applet程序,把它嵌入在Html文件中并依赖浏览器来运行,把applet程序编译好,然后运行Html文件即可。html文件和applet的字节码文件需放在同一目录下。六.课程设计总结与体会此次课程设计采用applet和线程的处理机制,画一个随机圆,产生一个简单的动画,设计的过程中不可防止地遇到一些代码运行错误的问题,深深感到代码的严谨是多么的重要,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论