面向对象程序设计ajava讲稿一章游戏篇练习烟花.pdf
练习94
本例知识点一句话讲解
新学使用Graphics类绘制
知识使用Thread类管理线程
已学使用Math类产生随机数
知识使用Color类设置颜色
一、练习具体要求
本例制作,运行效果如图94-1所示。执行本例实例后,用鼠标点击浏览器中的面
板,将出现五彩缤纷的效果。本实例的知识点有:鼠标的,Graphics类和Thread
类的应用。
二、程序及注释
(1)编程思路:本例因为要模拟效果,所以首先定义执行程序主线程的函数run()
对一个进行绘制。在函数run()中定义Graphics类的对象,通过程序中的算法来绘制
。然后,因为要实现的缤纷闪烁效果,所以要通过Thread类的
Thread.currentThread().sleep()方法使当前线程睡眠,让用户欣赏到当前的绘制效果。最
后,因为要实现人机交互.,所以首先要通过mousePressed(MouseEvente)函数来实现对鼠
标的,这样当按下鼠标时,产生一个新线程就可以看到一个新的效果。
(2)程序实现及注释:
importjava.awt.*;
importjava.applet.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassFireworktendsAppletimplementsMouseListener,Runnable
{
intx,y;
inttop,point;
/**
*对小程序进行变量和颜色的初始化。
*/
publicvoidinit()
{
x=0;
y=0;
//设置背景色为黑色
setBackground(Color.black);
addMouseListener(this);
}
publicvoidpaint(Graphicsg)
{
}
/**
*使该程序可以作为应用程序运行。
*/
publicstaticvoidmain(Stringargs[]){
Fireworksapplet=newFireworks();
JFrameframe=newJFrame(TextAreaNew);
frame.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
frame.getContentPane().add(
applet,BorderLayout.CENTER)