唯一浩哥

架构之路----Java有不少事

使用java实现持续移动的小球

原创作品,可以转载,但是请标注出处地址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 }

 

posted @ 2016-06-04 23:18  唯一浩哥  阅读(7372)  评论(0编辑  收藏  举报