Java窗體類
package running;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class GameBegin extends JFrame{
public static void main(String[] args) {
GameBegin g= new GameBegin();
MyPanle mp = new MyPanle();
//線程帶着畫布去跑
Thread t = new Thread(mp);
//線程啓動
t.start();
g.add(mp);
//擴展:自動獲取屏幕的寬高
int scWidth = Toolkit.getDefaultToolkit().getScreenSize().width;//自動獲取屏幕寬
int scHeight = Toolkit.getDefaultToolkit().getScreenSize().height;//自動獲取屏幕高
g.setSize(scWidth, scHeight);
//手動獲取屏幕寬
//g.setSize(1920, 1080);
g.setVisible(true);
g.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Java畫布類
package running;
import java.awt.Graphics;
/**
* 實現線程
* 1.繼承Thread
* 2.實現Readable(implements Readable)
*/
import java.awt.Toolkit;
import java.util.Random;
import javax.swing.JPanel;
public class MyPanle extends JPanel implements Runnable{
//屬性
int x=Toolkit.getDefaultToolkit().getScreenSize().width;//自動獲取屏幕寬
int y=new Random().nextInt(100);
public void paint(Graphics g){
//super是父類
super.paint(g);
if(x<=0){
x=500;
}
g.drawString("HELLOWROLD", x, y);
}
//跑的行爲
//重寫run方法
public void run(){
while(true){
//值越大跑的快
x-=50;
//線程阻塞
//捕獲異常
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
// 記錄日誌
e.printStackTrace();
}
//重畫
repaint();
}
}
}