1 package test; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Frame; 5 import java.awt.Graphics; 6 import java.awt.Image; 7 import java.awt.event.WindowAdapter; 8 import java.awt.event.WindowEvent; 9 /** 10 * 测试窗口沿着各种轨迹移动 11 * @author Nicholas 12 * 13 */ 14 public class GameFrame2 extends Frame { 15 Image img = GameUtil.getImage("picture/test3.jpg"); 16 17 public void launchFrame(){ 18 setSize(500,500); 19 setLocation(300,150); 20 setVisible(true); 21 22 new PaintThread().start(); 23 24 addWindowListener(new WindowAdapter(){ 25 public void windowClosing(WindowEvent e) { 26 System.exit(0); 27 } 28 }); 29 } 30 31 private double x=100,y=100; 32 private boolean left; 33 private boolean up; 34 35 public void paint(Graphics g) { 36 g.drawImage(img, (int)x, (int)y, null); 37 38 if(left){ 39 x-=3; 40 } 41 else { 42 x+=3; 43 } 44 if(x>500-50){ 45 left=true; 46 } 47 if(x<0){ 48 left=false; 49 } 50 if(up){ 51 y-=5; 52 } 53 else { 54 y+=5; 55 } 56 if(y>500-50){ 57 up=true; 58 } 59 if(y<20){ 60 up=false; 61 } 62 } 63 64 class PaintThread extends Thread{ 65 public void run(){ 66 while(true){ 67 repaint(); 68 try { 69 Thread.sleep(10); 70 } catch (InterruptedException e) { 71 e.printStackTrace(); 72 } 73 } 74 } 75 } 76 public static void main(String[] args) { 77 GameFrame2 gf=new GameFrame2(); 78 gf.launchFrame(); 79 } 80 }