原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5559829.html
仅为自己学习作品,使用java的JFrame框架实现持续移动的小球。
最核心的部分为实现小球移动的move()方法,在小球碰到墙壁四壁的时候得以反弹,不会移到墙壁之外。
1 /** 2 * 使用java实现持续移动的小球 3 */ 4 5 package jframe; 6 7 import java.awt.Color; 8 import java.awt.Graphics; 9 10 import javax.swing.JFrame; 11 12 public class JFrameTest extends JFrame{ 13 //定义移动变量 14 int x = 0; 15 int y = 0; 16 int m = 1; 17 int n = 1; 18 //主函数 19 public static void main(String[] args) { 20 new JFrameTest(); 21 } 22 //使用构造器创建窗体并设置 23 public JFrameTest(){ 24 this.setVisible(true); 25 this.setSize(500,500); 26 this.setDefaultCloseOperation(3); 27 this.setLocation(400, 100); 28 this.setResizable(false); 29 this.setTitle("测试框架"); 30 move(); 31 } 32 //重写画图方法 33 @Override 34 public void paint(Graphics g) { 35 super.paint(g); 36 g.setColor(Color.BLACK); 37 g.fillOval(x, 25 + y, 50, 50); 38 } 39 //定义小球移动轨迹 40 public void move(){ 41 while(true){ 42 x += m; 43 y += n; 44 if(x >= 450){ 45 m = -m; 46 } 47 if(x < 0){ 48 m = 1; 49 } 50 if(y >= 425){ 51 n = -n; 52 } 53 if(y < 0){ 54 n = 1; 55 } 56 try { 57 Thread.sleep(1); 58 } catch (InterruptedException e) { 59 e.printStackTrace(); 60 } 61 repaint(); 62 } 63 } 64 }
时间: 2024-11-05 19:17:52