说明

前段时间上刁老师的Java课,学了一点线程的控制,用来实现动画效果,很不错呦。

图例

Snowing

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import java.awt.*;
import javax.swing.*;
class Snow extends JFrame implements Runnable{
int x[] = new int[100] ;
int y[] = new int[100] ;
Snow(){
setSize(640,480);
setLocation(200,100);
setTitle("下雪了");
for(int i = 0 ; i < 100 ; i ++){
x[i] = (int)(Math.random()*640) ;
y[i] = (int)(Math.random()*480) ;
}
}
public void run(){
while(true){
for(int i = 0 ; i < 100 ; i ++){
y[i] ++ ;
if(y[i] >= 480){
y[i] = 0 ;
x[i] = (int)(Math.random()*640) ;
}
}
try{Thread.sleep(20) ;}catch(Exception e){}
this.repaint() ;
}
}
public void paint(Graphics g){
Image i1=Toolkit.getDefaultToolkit().getImage("15.jpg");
g.drawImage(i1,0,0,this);
g.setColor(Color.WHITE) ;
Font f = new Font("" , Font.BOLD , 25) ;
g.setFont(f) ;
for(int i = 0 ; i <100 ; i ++){
g.drawString("*" , x[i] , y[i]) ;
}
}
public static void main(String args[]){
// JFrame.setDefaultLookAndFeelDecorated(true);
Snow s=new Snow();
s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
s.show();
Thread t=new Thread(s);
t.start();
}
}