程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 上機題目(初級)- 滾雪球實例代碼(Java)

上機題目(初級)- 滾雪球實例代碼(Java)

編輯:JAVA綜合教程

上機題目(初級)- 滾雪球實例代碼(Java)


上一節實現了滿天星的效果,本節將實現滾雪球的小實例,這裡要用到重繪和線程的知識,代碼如下:

 

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;

public class SnowBall {

	public static void main(String[] args) {
		Frame frame=new Frame();
		frame.setBackground(Color.BLACK);
		frame.setSize(1024, 768);
		
		MyPanel myPanel=new MyPanel();
		frame.add(myPanel);
		
		Thread thread=new Thread(myPanel);
		thread.start();
		frame.show();
	}

}

class MyPanel extends Panel implements Runnable{
	int x=120;
	int y=10;
	@Override
	public void paint(Graphics g) {
		g.setColor(Color.WHITE);
		g.fillOval(x, y, 20, 20);
	}
	@Override
	public void run() {
		while (true) {
			y++;
			if(y>768){
				y=0;
			}
			repaint();
			
		}
		
		
		
	}
	
}

這時運行發現小球不動,但是確實不是代碼的問題,因為CPU運行太快了,這裡我們可以讓線程睡一會再執行下一次,在while中加入:

 

 

try {
				Thread.sleep(10);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

再次運行實例就可以看到小球不斷下落了。

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved