寫了一段代碼,想實現(xiàn)下雪積雪效果,但是用for循環(huán)控制g.fillRect畫矩形時,落雪效果消失了?
package plane;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Panel;public class Star {public static void main (String[] args){Frame w = new Frame(); //創(chuàng)建一個面板w.setVisible(true); //顯示面板,w.show();w.setSize(800,600); //設(shè)置面板大小w.setBackground(Color.BLACK); //設(shè)置背景顏色為黑色MyJPanel p = new MyJPanel(); //創(chuàng)建了一個畫布w.add(p);Thread t = new Thread(p); //創(chuàng)建一個線程t.start(); //啟動線程}}class MyJPanel extends Panel implements Runnable{int[] x = new int[100];int[] y = new int[100];public MyJPanel(){for (int i = 0; i < 100; i++) {x[i] = (int)(Math.random()*800);y[i] = (int)(Math.random()*600);}}public void paint(Graphics g){g.setColor(Color.YELLOW);g.fillOval(600,100,60,60);g.setColor(Color.BLACK);g.fillOval(580,100,60,60);g.setColor(Color.WHITE);for (int i = 0; i < 100; i++) {g.drawString("*",x[i],y[i]);}/*for (int j = 0; j < 300; j--) {for(int l=15;l>0;l--)for(int m=100000;m>0;m--)for(int n=81;n>0;n--);g.fillRect(0,600,800,10*j);}*/}public void run(){while(true){for (int i = 0; i < 100; i++) {if(y[i]+1<=600){y[i]++;}else{y[i]=0;}}repaint();try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}控制矩形的是注銷的for循環(huán)代碼
查看完整描述