首先咱们要在一个窗口里面显示这个功能,所以引入JFrame类而后建立一个窗口代码以下:java
JFrame win=new JFrame();//新建窗口 win.setLocation(250,100);//设置窗口位置 win.setSize(800,600);//设置窗口大小 win.show();//显示窗口 win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭退出
显示以下:
要实现这个功能作基础的就是要有一个小球,就像人吃饭这句话,少了人这个主角,说什么都是白说。世间全部事物都是对象,具备属性和操做,没有对象就没有一切。就下来咱们就来生成一个小球,这里用到Panel类,建立一个MyPanel类继承于Panel类而后建立一个画画方法。代码以下:ide
class MyPanel extends Panel{ public void paint(Graphics g) { g.setColor(Color.yellow); g.fillOval(100, 40, 80, 80); } }
建立一个对象my,添加进win窗口里。代码以下:线程
MyPanel my=new MyPanel(); win.add(my);
效果以下:3d
接下来就是让这个小球动起来,咱们让这个小球向右移动,咱们用线程和异常来实现。代码以下:code
1.Thread t=new Thread(my);//新建线程 t.start();//开始线程 2.implements Runnable 3.public void run() {//运行方法 while(true){ repaint();//从新画圆 try { Thread.sleep(10);十毫秒运行一次 } catch(Exception e) { } } } 4.g.fillOval(x++, 40, 80, 80);//修改每次的横坐标
效果
一步一步来,接下来咱们要实现的目标就是让小球碰到边界能够反向走s。
核心代码:对象
[java] view plain copy int fly=1; [java] view plain copy if (fly==1) { x++; } if(fly ==2) { x--; } if(x>720) { fly=2; y=y+70; } if(x<0) { fly=1; y=y+70; }
效果
好装备的差很少了,下面就开始实现完整功能了。
效果以下:
完整代码:blog
[java] view plain copy package Ball; import java.awt.Color; import java.awt.Graphics; import java.awt.Panel; import javax.swing.JFrame; public class Ball { public static void main(String[] args) { // TODO Auto-generated method stub JFrame win=new JFrame();//新建窗口 win.setLocation(250,100);//设置窗口位置 win.setSize(800,600);//设置窗口大小 win.show();//显示窗口 win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭退出 MyPanel my=new MyPanel(); win.add(my); Thread t=new Thread(my); t.start(); } } class MyPanel extends Panel implements Runnable{ int x=0,y=0; int flyx=1,flyy=1; public void paint(Graphics g) { g.setColor(Color.yellow); g.fillOval(x, y, 70, 70); // System.out.println("23"); if (flyx==1) { x++; } if(flyx ==2) { x--; } if(flyy==1) { y++; } if(flyy==2) { y--; } if(x>730) { flyx=2; } if(x<0) { flyx=1; } if(y<0) { flyy=1; } if(y>530) { flyy=2; } } public void run() { while(true){ repaint(); try { Thread.sleep(10); } catch(Exception e) { } } } }
第一次写博客,写的不够详细,或者有错的地方欢迎你们的添加和指正,你们一块儿交流,我是个初学者,但愿不要介意。继承