⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 confetti.java

📁 几个基础的java Applet程序
💻 JAVA
字号:
import java.applet.*;
import java.awt.*;
//定义Confetti类
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: Ali"; 
	}
        //初始化,获取各参数的值
	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 
			delay=5;
		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<amount;i++) {
			flakes[i][0] = (int)(Math.random() * xSize);
			flakes[i][1] = (int)(Math.random() * ySize);
		}
		offscreenImage = createImage(xSize,ySize);
		offscreenGraphics =offscreenImage.getGraphics();
		System.out.println("Confetti (C)2003 Ali");		
	}
 	//newimage()方法
	public void newimage() 
	{	offscreenGraphics.drawImage(backdrop,0,0,xSize,ySize,null);
		offscreenGraphics.setColor(Color.red);
		int onCl=0;		
		for(int i=0;i<amount;i++)
		{
			int xDif=xMax-xMin;
			int yDif=yMax-yMin;
			double xV=(Math.random()*xDif*2-xDif);
			if (xV<0) {xV-=xMin;}
			else {xV+=xMin;}
			flakes[i][0] += (int)(xV);
			flakes[i][1] += (int)(Math.random()*yDif)+yMin;
			if (flakes[i][0] < 0)
				flakes[i][0] = xSize;
			if (flakes[i][0] > 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);
		}
	}
	//destroy()方法
	public void destroy()
	{	
		offscreenGraphics.dispose();
	}
        //paint()方法
	public void paint(Graphics g)
	{
		g.drawImage(offscreenImage,0,0,this);
	}
	//update()方法
	public void update(Graphics g)
	{
		paint(g);
	}
	//start()方法,启动线程
	public void start()
	{
		if (m_snow == null)
		{
			m_snow = new Thread(this);
			m_snow.start();
		}		
	}
 	//stop()方法,停止线程
	public void stop()
	{
		if (m_snow != null)
		{
			m_snow.stop();
			m_snow = null;
		}
	}
	//run()方法
	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();//调用newimage()方法
				repaint();
				long tm=delay-(System.currentTimeMillis()-nw);
				if (tm<10) {tm=10;}
				Thread.sleep(tm);
				newimage();
			}
			catch (InterruptedException e)//抛出异常
			{
				stop();
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -