Java小程序-随机画圆

 摘要

现如今,随着智能手机的兴起与普及,加上4G(the 4th Generation mobile communication ,第四代移动通信技术)网络的深入,越来越多的IT行业开始向手机行业转移重心。而手机行业中游戏方面的利润所占比重较大,并且手机游戏大多数则是由Java语言开发研制的。所以我想顺应时代发展,用学到的Java知识对游戏进行一次深入的了解与创作。
Java语言在我们大学学习中占了很大的比重,其优点甚多:面向对象,可靠,安全,多平台可移植,高性能,多线程等。面向对象是相对于c语言的面向过程来说的,在面向对象编程中,我们用Java去新建一个对象,调用其方法就能实现我们的目标,并不需要了解这个对象的方法的具体实现过程;Java的可靠安全特点体现Java不支持指针,禁止第三方访问,杜绝了外部风险。所以使用Java开发软件和应用,是一个正确的选择。随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的画图工具,可以实现简单的画图作图功能,满足日常基本的工作学习和娱乐需要。
Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java 基本版本叫Java 2标准版(Java 2Standard Edition,J2SE) , 它包含建立Java应用程序或者是Applet所需的应用程序编程接口(API)。 Java2 移动版(The Java 2 MobileEdition,J2ME) 包含创建无线Java应用程序的API。还有Java 2企业版(The Java 2 Enterprise, J2EE) 是J2SE的增强版。
java学习结束,在结课之际,我想用我这几个月里学习的知识为自己编写一个程序———画园,为java学习生活画上圆满的句号。

关键词:Java  画图  多线程  可靠安全 HTML文件 画随机圆

一.引言

经过这段时间的专业学习,使我们系统化的掌握了专业基础知识,为了综合运用所学理论知识,培养自己的独立分析问题、解决问题的能力,让自己在实践中获得真知,我认真的进行并完成了此次设计任务,,此次课程设计课题为飞机大战小游戏,在指导老师的帮助下,我逐步完成。

通过对教材和有关参考资料的学习,是我掌握基木方法,解决了措施主要内容有哪些,此次设计过程中,我按照设计的各项要求,综合运用所学知识,独立的完成了资料的收集整理,,定额的应用,掌操此次设计的完成锻炼了我的创新思维和动于能力,提高了我综合应用专业知识解决实际问题的能力,培养了我注重实事求是、独文思考的科学精神,提高了从事专业的实际工作能力,为我以后的发展打下了坚实的基础。

Applet是基于HTML的小程序。浏览器将其暂时下载到用户的硬盘上,并在Web页打开时在本地运行。一般的 Applet只能通过appletviewer或者浏览器来运行,Java 程序通过继承Applet类也可以嵌入网页运行。在Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit, AWT) 的窗口环境开发工具。AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。目前,在网络上有非常多的Applet范例来生动地展现这些功能。
多线程的目的是为了最大限度的利用CPU资源,以前所编写的程序,每个程序都有一个入口、一个出口以及一个顺序执行的序列,在程序执行过程中的任何指定时刻,都只有- -个单独的执行点。事实上,在单个程序内部是可以在同- -时 刻进行多种运算的,这就是所谓的多线程。一个单独的线程和顺序程序相似,从概念上说,一个线程是- - 个程序内部的一一个顺序控制流。线程并不是程序,它自己本身并不能运行,必须在程序中运行。在一个程序中可以实现多个线程,这些线程同时运行,完成不同的功能。

二.设计思路及需求分析

2.1总体目标
设计一个自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度由HTML文件传入的参数控制。实现简单的动画功能。
2.2. Applet的工作原理.
含有Applet的网页的HTML文件代码中部带有<applet>和/applet这样一对标记, 当支持Java的网络浏览器遇到这对标记时,就将下载相应的小应用程序代码并在本地计算机上执行该Applet。Java Applet是用Java语言编写的- -些小应用程序,这些程序是直接嵌入到页面中,由支持Java的浏览器(E或遨游)解释执行能够产生特殊效果的程序。它可以大大提高Web页面的交互能力和动态执行能力。
包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。当用户访问这样的网页时,Applet 被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。含有。一个HTML文件增加Applet有关的内容只是使网页更加富有生气,如添加声音、动画等这些吸引人的特征,它并不会改变HTML文件中与Applet无关的元素。
2.3.多线程机制
在Java中,多线程的实现有两种方式:
扩展java lang Thread类
实现java. lang Runnable接口
每个线程都有一个优先级,高优先级线程的执行优先于低优先级线程。每个线程都可以或不可以标记为一一个守护程序。当某个线程中运行的代码创建-一个新Thread 对象时,该新线程的初始优先级被设定为创建线程的优先级,并且当且仅当创建线程是守护线程时,新线程才是守护程序。当Java 虚拟机启动时,通常都会有单个非守护线程(它通常会调用某个指定类的main方法)。Java 虚拟机会继续执行线程,直到下列任意一个情况出现时为止: .因此,不管是扩展Thread类还是实现Runnable接口来实现多线程,最终还是通过Thread的对象的API来控制线程的如图2-1,熟悉Thread类的API是进行多线程编程的基础。新建状态(New): 新创建了一个线程对象。就绪状态( Runnable):线程对象创建后,其他线程调用了该对象的start(方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。注意: start(方 法的调用后并不是立即执行多线程代码,而是使得该线程变为可运行态(Runnable) 什么时候运行是由操作系统决定的。从程序运行的结果可以发现,多线程程序是乱序执行。因此,只有乱序执行的代码才有必要设计为多线程。Thread sleep0方法调用目的是不让当前线程独自霸占该进程所获取的CPU资源,以留出--定时间给其他线程执行的机会。实际上所有的多线程代码执行顺序都是不确定的,每次执行的结果都是随机的。
2.4.多线程的优势
(1)减轻编写交互频繁、涉及面多的程序的困难,如监听网络端口。
(2)程序的吞吐量会得到改善,同时可以监听多种设备,如网络端口、串口、并口以及其他外设。
(3)有多个处理器的系统,可以并发运行不同的线程,否则,任何时刻只有一个线程在运行。Thread类本身只是线程的虚拟CPU,线程所执行的代码(或者说线程所要完成的功能)是通过方法run0包含在- - 个特定的对象中来完成的,方法run()称为线程体。实现线程体的特定对象是在初始化线程时传递给线程的。在--个线程被建立并初始化以后,Java的运行时系统就自动调用run( )方法,正是通过run( )方法才使得建立线程的目的得以实现。

(4)线程睡眠: Thread sleep(long millis)方法,使线程转到阻塞状态。millis 参数设定睡眠的时间,以毫秒为单位。当睡眠结束后,就转为就绪Runnable状态。sleepO平台移植性好。
分析与设计3.1.题目及使用环境
课程设计题目:画随机圆
开发环境: JCreator pro Jdk 1.6工具包编程语言: Java Html
界面要求:用Java Applet实现运行环境: Windows 操作系统
3.2.3.2系统功能设计

运行浏览器之后,会自动出现由小到大变换的圆,圆的位置与颜色随机,大小变到150直径时擦除,重新再出现圆,圆变换速度通过HTML文件传入的参数控制,实现简单的动画

3.3.要实现的功能
(1)此程序为实现这些功能模块,必须首先定义画图的对象,对所要画的圆的颜色及其位置进行设置。

(2)此程序为实现简单的动画功能,必会使用到Therad线程机制。因此会用到实现接口Runable中的runO方法,及通过调用sleep0来显示圆的变化速度。
(3)此程序中,必须用到的包如下:
java. applet.Applet,
java. awt.Color;,
java.awt.Graphics,
java.util *;
3.4.实现方式
在Circ java中首先调用init ()方法对线程和画图进行初始化并各自创建一个对象。 Circ类通过实现Runnable接口,使得该类有了多线程类的特征run ()方法是多线程程序的一一个约定。所有的多线程代码都在run方法里面。Thread类实际上也是实现了Runnable接口的类。在启动的多线程的时候,需要先通过Thread 类的构造方法Thread(Runnable target)构造出对象,然后调用Thread对象的start)方法来运行多线程代码。实际上所有的多线程代码都是通过运行Thread的start()方法来运行的。
3.5.需用到的类和方法
class Circ
此类用于定义一个线程和Graphics对象,并且使用initQ方法将他们分别初使化,以方便在下面的程序中使用它们。
run()方法
此方法用于实现这个程序的大部分功能,在这个方法中定义- -些基本变量以及画一-个填充圆,还对圆的半径进行了设置,当线程启动后,java 类的run0方法就开始执行
init()方法
此方法对线程和Graphics对象进行初始化以及启动线程
paintO()方法

此方法实现的是将所画的圆在applet窗口的面板上。

程序代码

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
class PaintovalPane extends JPanel {
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.pink);
        g.fillOval(100, 100, 200, 200);
    }
}
class PaintovalFrame extends JFrame {
    public PaintovalFrame() {
        setTitle("lamp");
        setSize(500,500);
        addWindowListener(
        new WindowAdapter() {
            public void WindowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        Container contentPane = getContentPane();
        contentPane.add(new PaintovalPane());
    }
}
public class demo_01 {
    public static void main(String[] args) {
        JFrame f = new PaintovalFrame();
        f.show();
    }
}

 

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X-MTing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值