package GameFrame;
/**
* 关于球运动的项目学习
*/
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameFrame02 extends Frame {
/**
* 加载窗口
*/
Image img =GameUtil.getImage("image/sun.jpg");
public void Frametest() {
setSize(500,500);//窗口大小
setLocation(100,100);//窗口位置
setVisible(true);//窗口可见
/*
*关闭该窗口,并且停止该程序
*(窗口监听器)
*/
new paintThread().start();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
private double x=100,y=100;
private boolean left,down;
//这是一个回调方法,用的是父类对象,所以无需调用,直接可用
@Override
public void paint(Graphics g) {
g.drawImage(img, (int)x, (int)y, null);//double强制转换int
//左右移动
if(left) {
x -= 3;
}
else {
x+=3;
}
if(down) {
y -= 3;
}
else {
y+=3;
}
if(x>500-140) {
left=true;
if(y<100&&x>500-140) {
left=(Boolean) null;
down=false;
}
}
if(x<100) {
left=false;
if(y>500-140&&x<100) {
left=(Boolean) null;
down=true;
}
}
}
class paintThread extends Thread{
public void run() {
while (true) {
repaint();
//使这个程序无限启动
try {
Thread.sleep(20);
//每次启动都停40ms(毫秒)
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public static void main(String []args) {
FrameFrame02 f =new FrameFrame02();
f.Frametest();
}
}