package Project01;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.*;
public class Code01 extends Jframe {
public static void main(String[] args) {
// TODO Auto-generated method stub
new Code01();
}
public Code01() { //创建主窗体,并添加画板
// TODO Auto-generated constructor stub
this.setTitle("雪花飘落");
this.setBounds(50,50, 500, 450);
MyPanel mypanel=new MyPanel();
this.add(mypanel);
new Thread(mypanel).start();
this.setVisible(true);
}
}
class MyPanel extends JPanel implements Runnable{ //创建画板类
int[] x=new int[300];
int[] y=new int[300];
public MyPanel(){ //创建构造方法给坐标数组赋随机值
this.setSize(490,440);
this.setBackground(Color.BLACK);
Random r=new Random();
for(int i=0;i<300;i++){
x[i]=r.nextInt(490);
y[i]=r.nextInt(440);
}
}
public void run() { //重写线程方法让y坐标值循环增加,并到底部时赋值为0
// TODO Auto-generated method stub
while(true){
for(int i=0;i<300;i++){
y[i]++;
if(y[i]>=440){
y[i]=0;
}
}
try {
Thread.sleep(50);
} catch (InterruptedException e) {
// TODO Auto-generated catch block //线程休眠一段时间后,调用repaint方法重绘画板
e.printStackTrace();
}
repaint();
}
}
@Override
public void paint(Graphics g) { //重写paint方法
// TODO Auto-generated method stub
super.paint(g);
g.setColor(Color.WHITE);
g.setFont(new Font("楷体",Font.PLAIN,10));
for(int i=0;i<300;i++){
g.drawString("*", x[i], y[i]);
}
}
}



