//###################################################################
//
// Confetti.java (C)2000 amIbleeding.com
//
//###################################################################
import java.applet.*;
import java.awt.*;
public class Confetti extends Applet implements Runnable
{
private Thread m_snow = null;
private int flakes[][];
private Image offscreenImage;
private String m_back = "none";
private Image backdrop;
private Graphics offscreenGraphics;
private Image frame;
private int[] colors;
private Color[] cl={Color.red,Color.green, Color.blue, Color.yellow,
Color.cyan,Color.magenta, Color.orange, Color.pink,
Color.white, Color.lightGray, Color.gray, Color.darkGray,
Color.black};
private String[] cNames={"red","green","blue", "yellow", "cyan",
"magenta","orange","pink","white","lightGray","gray","darkGray",
"black"};
private int xSize;
private int ySize;
private int pixSize;
private int amount = 0;
private int delay;
private int xMin,xMax,yMin,yMax;
public String getAppletInfo()
{
return "Name: Confetti\r\n" +
"Author: amIbleeding.com\r\n" +
"Created with Microsoft Visual J++ Version 1.1";
}
public void init()
{
String param;
colors = new int[13];
amount=0;
for (int t=0;t<13;t++) {
param = getParameter(cNames[t]);
if (param != null)
colors[t] = Integer.parseInt(param);
}
param = getParameter("pixSize");
if (param != null)
pixSize = Integer.parseInt(param);
else
pixSize=2;
for (int t=0;t<13;t++) {
int tmp=colors[t];
colors[t]+=amount;
amount+=tmp;
}
flakes = new int[amount][2];
param = getParameter("back");
if (param != null)
m_back = param;
param = getParameter("frame");
if (param != null)
frame = getImage(getCodeBase(),param);
else
frame=null;
param = getParameter("delay");
if (param != null)
delay= Integer.parseInt(param);
else
delay=100;
param = getParameter("xMin");
if (param != null)
xMin= Integer.parseInt(param);
else
xMin=0;
param = getParameter("xMax");
if (param != null)
xMax= Integer.parseInt(param);
else
xMax=3;
param = getParameter("yMin");
if (param != null)
yMin= Integer.parseInt(param);
else
yMin=0;
param = getParameter("yMax");
if (param != null)
yMax= Integer.parseInt(param);
else
yMax=5;
xSize=size().width;
ySize=size().height;
backdrop=getImage(getCodeBase(),m_back);
for(int i=0;i xSize-1)
flakes[i][0] = 0;
if (flakes[i][1] > ySize-1)
{
flakes[i][1] = 0;
flakes[i][0] = (int)(Math.random()*xSize);
}
while (i>colors[onCl]) {onCl++;
offscreenGraphics.setColor(cl[onCl]);
}
offscreenGraphics.fillRect(flakes[i][0],flakes[i][1],pixSize,pixSize);
}
if (frame != null) {
offscreenGraphics.drawImage(frame,0,0,xSize,ySize,null);
}
}
public void destroy()
{
offscreenGraphics.dispose();
}
public void paint(Graphics g)
{
g.drawImage(offscreenImage,0,0,this);
}
public void update(Graphics g)
{
paint(g);
}
public void start()
{
if (m_snow == null)
{
m_snow = new Thread(this);
m_snow.start();
}
}
public void stop()
{
if (m_snow != null)
{
m_snow.stop();
m_snow = null;
}
}
public void run()
{
MediaTracker mt = new MediaTracker(this);
mt.addImage(backdrop,0);
if (frame!=null) {
mt.addImage(frame,0);
}
try {
mt.waitForAll();
} catch (Exception e) {}
while (true)
{
try
{
long nw=System.currentTimeMillis();
newimage();
repaint();
long tm=delay-(System.currentTimeMillis()-nw);
if (tm<10) {tm=10;}
Thread.sleep(tm);
newimage();
}
catch (InterruptedException e)
{
stop();
}
}
}
}
|
Applet Index (sorted alphabetically) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #s |
The Java Source (applets w/source code) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|
|
|
| Advertising Info | Member Services | Contact Us | Help | Feedback | Site Map | Network Map | About |