使用java实现持续移动的小球
原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5559829.html
仅为自己学习作品,使用java的JFrame框架实现持续移动的小球。
最核心的部分为实现小球移动的move()方法,在小球碰到墙壁四壁的时候得以反弹,不会移到墙壁之外。
/**
* 使用java实现持续移动的小球
*/ package jframe; import java.awt.Color;
import java.awt.Graphics; import javax.swing.JFrame; public class JFrameTest extends JFrame{
//定义移动变量
int x = 0;
int y = 0;
int m = 1;
int n = 1;
//主函数
public static void main(String[] args) {
new JFrameTest();
}
//使用构造器创建窗体并设置
public JFrameTest(){
this.setVisible(true);
this.setSize(500,500);
this.setDefaultCloseOperation(3);
this.setLocation(400, 100);
this.setResizable(false);
this.setTitle("测试框架");
move();
}
//重写画图方法
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.BLACK);
g.fillOval(x, 25 + y, 50, 50);
}
//定义小球移动轨迹
public void move(){
while(true){
x += m;
y += n;
if(x >= 450){
m = -m;
}
if(x < 0){
m = 1;
}
if(y >= 425){
n = -n;
}
if(y < 0){
n = 1;
}
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
}
}
使用java实现持续移动的小球的更多相关文章
- JAVA基础----持续更新
1.基本数据类型 - 整数型:byte short int long 默认为int 计算时需要转换 - 浮点型:float double 默认为double - 布 ...
- Java笔记 (持续更新ing)
目录: 1 . GC是什么,为什么要有GC? 1. GC是什么,为什么要有GC? GC是垃圾回收的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃 ...
- 剑指offer面试题-Java版-持续更新
最近在用Java刷剑指offer(第二版)的面试题.书中原题的代码采用C++编写,有些题的初衷是为了考察C++的指针.模板等特性,这些题使用Java编写有些不合适.但多数题还是考察通用的算法.数据结构 ...
- Java设计模式 - 持续更新
注意,此博客来源于我的 OneNote 笔记本 因此属于图片形式进行展示,这意味着你可以: 不经过我的同意进行保存 不经过我的同意进行发布 我仍然希望搬运时留一个网址指明来处:我的博客园 多谢!以下是 ...
- 【剑指offer】Java实现(持续更新中)
面试题3 二维数组中的查找 Leetcode--74 Search a 2D Matrix /*Java Write an efficient algorithm that searches for ...
- 韩顺平Java(持续更新中)
原创上课笔记,转载请注明出处 第一章 面向对象编程(中级部分) PDF为主 1.1 IDEA 删除当前行,ctrl+y 复制当前行,ctrl+d 补全代码,alt+/ 添加或者取消注释,ctrl+/ ...
- Java辅助类持续汇总~
/** * 01 * 描述:List<String>集合去除重复数据 * [时间 2019年3月5日下午3:54:09 作者 陶攀峰] */ public static List<S ...
- Java项目持续集成检查项
1) 检查项:使用Super POM. 2) 检查项:GroupID应该以特定名称开头.3) 检查项:版本号符合规范.版本号必须是三段数字,之后加或不加-SNAPSHOT.4) 检查项 ...
- Jenkins学习总结(2)——Jenkins+Maven进行Java项目持续集成
最近配置了Jenkins服务器,记录下基本过程.(当然还遇到了若干小问题,兵来将挡水来土掩就是了) Jenkins安装 安装Tomcat 从Jenkins官网下载jenkins.war文件.官网地址: ...
随机推荐
- Android堆栈分析
在开发中,与界面跳转联系比较紧密的概念是Task(任务)和Back Stack(回退栈).activity的启动模式会影响Task和Back Stack的状态, 进而影响用户体验.除了启动模式之外,I ...
- DOJO 如何清空表单
在Dojo里,清空表单非常简单 在设置好了相关的环境之后,只要设置dom.byId('formid').reset(); / dijit.byId('formid').reset; Jqu ...
- RequireJS进阶(三) 转
进阶的前面两篇讲述了r.js如何通过命令行把所有的模块压缩为一个js文件或把所有的css压缩为一个css文件.其中包括一些压缩配置参数的使用. 但以上两种方式有几个问题 1.通过命令手动配置压缩选项显 ...
- for-in遍历json数据
1.for遍历json数据 ','fun':'前端开发'} for(var attr in json){ alert(json[attr]) //遍历json属性的数据 alert(json['nam ...
- Excel的最大行数
使用Excel2007或Excel2010,在“另存为” 菜单中可以选择为“Excel 07-2003 工作薄”,从中我们可以看出,到了2007版以后,存储格式变了,简单一点从扩展名便可以看出,一个是 ...
- Java读写大文本文件(2GB以上)
如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符'r'是linux上的,windows的java换行符是'\r\n': package kddcup ...
- cocos2dx 2.x 版本+Windows+ADT Bundle 配置
昨天解决了cocos2dx 3.x版本+Windows+ADT Bundle的配置,今天来解决cocos2dx 2.x版本的配置. 整体来说,2.x的配置相对麻烦一点,不过一旦解决了,就一路畅通无阻了 ...
- 【剑指offer 面试题27】二叉搜索树与双向链表
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表. C++: #include <iostream> using namespace std; struct TreeNode { ...
- LeetCode ---Anagrams() 详解
Notice: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs ...
- 实例化spring容器
方法一:在类路径下寻找配置来实例化容器 ApplicationContext ctx = new String[]{"beans.xml"}); 方法二:在文件系统路径下寻找配置文 ...