各位大婶我的俄罗斯方块在下落过程后边痕迹怎么去掉哇…………
[code=Java][/code]
public class MyPanel extends JPanel {		
		private int[][] map = new int[22][12];  //场景		
		int blocktype = 0;
		int turnstate = 0;
		int x = 0;
		int y = 0;
		Timer timer;				
		private final int[][][] sharp = new int[][][] {
		// i
				{ { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 },
						{ 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0 } },
				// s
				{ { 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
						{ 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
				// z
				{ { 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
				// j
				{ { 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 },
						{ 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
				// o
				{ { 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
				// l
				{ { 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
						{ 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
				// t
				{ { 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
						{ 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
						{ 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 } } };		
		public MyPanel(){   
			cleanMap();
			drawWall();
			newBlock();
			timer = new Timer(1000, new ActionListener (){
				public void actionPerformed(ActionEvent e) {
					y++;
					repaint();					
				}				
			});				
			timer.start();
		}			
		public void newBlock(){
			blocktype = (int)(Math.random()*100)%7;
			turnstate = (int)(Math.random()*100)%4;
			x=4;
			y=0;
		}		
		public void cleanMap(){  //清空
			for(int i=0;i<21;i++){
				for(int j=1;j<11;j++){
					map[i][j] = 0;
				}
			}
		}		
		public void drawWall(){   //画边框
			for(int i=0;i<12;i++){
				map[21][i] = 2;  //做个标记2
			}
			for(int j=0;j<22;j++){
				map[j][0] = 2;
				map[j][11] = 2;
			}
		}		
		public void paintComponent(Graphics g){  
			for(int i=0;i<22;i++){
				for(int j=0;j<12;j++){
					if(map[i][j]==2){
						g.drawRect(j*10, i*10, 10, 10);//画围墙						
					}
				}
			}			
			for(int i=0;i<16;i++){
				if(sharp[blocktype][turnstate][i]==1){
					g.fillRect((x+1+i%4)*10,(y+i/4)*10 , 10, 10);
				}
			}
		}
}
------解决方案--------------------
public void paintComponent(Graphics g){ 
for(int i=0;i<22;i++){
在上面两行中间加一句super.paintComponent(Graphics g);