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();
}
}
}