*實現在窗體上隨機覆蓋300個雪花(“*”),並滾動。
*在上節課的基礎上,增加了for循環(壹次生成300個變量)、隨機數和數組;
*以下序列號是步驟。
*/import Java . awt . *;//(3)導入awt包
公共星級{
公共靜態void main(String args[]) {
框架w =新框架();//(1)繪制表單
w.setSize(1024,768);//(4)用全屏幕填充表單
w.setBackground(顏色。黑色);//(5)背景是黑色的。
my panel MP = new my panel();//(7)將MyPanel對象mp添加到表單w中。
w . add(MP);
Thread t =新線程(MP);
t . start();//(12)啟動線程
w . show();//(2)顯示表單
}
}
//(6)繼承Panel類
類MyPanel擴展Panel實現Runnable {//(11)實現Runnable接口。
int x[]= new int[300];
int y[]= new int[300];//(8)定義300個數組變量MyPanel(){
for(int I = 0;我& lt300;i++) {
x[I]=(int)(math . random()* 1024);
y[I]=(int)(math . random()* 768);//(9)當程序進行到第6步時,程序會調用構造函數。
}//由於隨機數是從0-1任意生成的,所以X乘以1024,Y乘以768,然後轉換成int類型。
}
公共空白油漆(圖形g) {
for(int I = 0;我& lt300;i++) {
g.setColor(顏色。白色);
g.drawString("* ",x[i],y[I]);
//g.drawString("* ",30,30);(7)在屏幕上x=30,y=30的位置畫壹顆星。
} //(10)畫300片雪花,將坐標30和30改為X [I]和Y[I];
}//做這壹步可以做到黑天上300顆星。
公共無效運行(){
而(true) {//(13)實現了生成300片雪花落下的死循環。
for(int I = 0;我& lt300;i++) {
y[I]++;//(14)y坐標是常數+1
if(y[I]& gt;768){ //(18)如果Y軸坐標大於768,則y = 0,並返回表單頂部。
y[I]= 0;
}
}
Try{ //(16)用try and catch解決線程休眠異常。
thread . sleep(20);//(15)線程在每個Y軸坐標+1後休眠20ms。
}catch(異常e) {}
repaint();//(17)雪花在新位置重新繪制。
}
}
}