各位好心人帮我T_T~~~
一个JAVA下雪的小程序
果:
程序代码:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.net.*;
public class Snow extends Applet implements Runnable
{
Thread thread;
private Image offImg; // 缓冲图象
private Graphics offG; // 缓冲
Image bgimg ;
private final int snow_num = 200; // 雪花数量
private int[][] snows = new int[snow_num][2];
// 存放雪花位置的数组,[index][0]为x,[index][1]为y
public void init()
{
offImg = createImage(getSize().width, getSize().height); // 创建缓冲图象大小
offG = offImg.getGraphics();
try{
bgimg = getImage(new URL("http://www.delfan.com/images/snow.jpg"));
}catch(Exception e){}
setSize(180,135);
for(int i=0; i<snow_num; i++) // 先随机生成雪花的位置
{
snows[0]=(int)(Math.random()*10000) % getSize().width;
snows[1]=(int)(Math.random()*10000) % getSize().height;
}
}
蓝色部分的显示有错
我对JAVA一点都不懂啊基本上
唉还是为了应付考试啊
可怜
好心人看到帮我改正哦~
----------------解决方案--------------------------------------------------------
不是吧55555
----------------解决方案--------------------------------------------------------
我对APPLET不太了解不过你这个程序的Runnable接口的Run方法你没有重写呢!
而且snows[0]=(int)(Math.random()*10000) % getSize().width;
snows[1]=(int)(Math.random()*10000) % getSize().height;
中的snows[]应该是snows[][]的!
不过这两个地方改完还没能实现你要实现的问题.
我只能帮你这么多啊!
----------------解决方案--------------------------------------------------------
/*
* Created on 2006-1-1
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package test;
/**
* @author hyvin
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.util.Random;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Snow extends Applet implements Runnable{
Thread mainThread;
Image im,gAlc[];
Random rand;
int stop,snows,wind,threadSleep;
int[] snowX,snowY;
long stopTime=0;
Dimension dim;
MediaTracker mt;
public Snow() {
}
String getParameter(String s1,String s2){
String s=getParameter(s1);
return (s!=null)?s:s2;
}
int getParameter(String s1,int s2, int max, int min){
String s=getParameter(s1);
if(s!=null){
if((s2=Integer.parseInt(s))> max)
return max;
else if(s2<min)
return min;
else return s2;
}
else return s2;
}
//Initialize the applet
public void init() {
rand=new Random();
dim=getSize();
im=createImage(dim.width,dim.height);
snows=getParameter("Snows",100,500,0);
snowX=new int[snows];
snowY=new int[snows];
for(int i=0;i<snows;i++){
snowX[i]=rand.nextInt()%(dim.width/2)+dim.width/2;
snowY[i]=rand.nextInt()%(dim.height/2)+dim.height/2;
}
mt=new MediaTracker(this);
gAlc=new Image[1];
gAlc[0]=getImage(getDocumentBase(),getParameter("graphic","leaf.gif"));
mt.addImage(gAlc[0],0);
try{
mt.waitForID(0);
}
catch(InterruptedException ex){
return;
}
stop=0;
}
public void start(){
if(mainThread==null){
mainThread=new Thread(this);
mainThread.start();
}
}
public void stop(){
mainThread=null;
}
public void run(){
while(mainThread!=null){
try{
Thread.sleep(threadSleep);
}
catch(InterruptedException ex){
return ;
}
repaint();
}
}
public void drawBackSnow(Graphics g){
g.setColor(Color.white);
for(int i=0;i<snows;i++){
g.fillOval(snowX[i],snowY[i],3,3);
snowX[i]+=rand.nextInt()%2+wind;
snowY[i]+=(rand.nextInt()%6+5)/5+1;
if(snowX[i]>=dim.width)
snowX[i]=0;
if(snowX[i]<0)
snowX[i]=dim.width-1;
if(snowY[i]>=dim.height||snowY[i]<0){
snowX[i]=Math.abs(rand.nextInt()%dim.width);
snowY[i]=0;
}
}
wind=rand.nextInt()%5-2;
}
public void paint(Graphics g){
im.getGraphics().setColor(Color.black);
im.getGraphics().fillRect(0,0,dim.width,dim.height);
im.getGraphics().drawImage(gAlc[0],0,0,this);
drawBackSnow(im.getGraphics());
g.drawImage(im,0,0,null);
}
public void updata(Graphics g){
paint(g);
}
}
声音图片你用自己的吧
----------------解决方案--------------------------------------------------------