准备工作:
首先确定自身机器应装有jdk,如果没有请到这个官方网站
http://www.oracle.com/technetwork/indexes/downloads/index.html#java上下载。 小球程序的基本架构组成:
1、对象小球 2、窗口主程序 3、小球运动程序 注意:你看到的小球运动其实就是视觉的欺骗,因为屏幕的刷新速度和重绘速度造成的错觉让人觉得是在运动。因此程序的运动其实就是图像的重新绘制和生成。 以下是编制的小球程序:
首先是小球这个对象的java程序Ball.java
import java.awt.Color; import java.awt.Graphics;
public class Ball { /** * 球的八个方向 */ public final static int LEFT_UP=0; public final static int LEFT_DOWN=1; public final static int RIGHT_UP=2; public final static int RIGHT_DOWN=3; public final static int UP=4; public final static int DOWN=5; public final static int RIGHT=6; public final static int LEFT=7; /** * 球的5个属性 */ private int x,y; private int r; private Color color; private int oraintation;//小球的方向 public Ball(int r,int x,int y,Color color,int oraintation){ this.r=r; this.x=x; this.y=y; this.color=color; this.oraintation=oraintation; }
public void draw(Graphics g){ g.setColor(color); g.fillArc(x-r, y-r, r/2, r/2, 0,360); }
public int getX() { return x; }
public void setX(int x) { this.x = x; }
public int getY() { return y; }
public void setY(int y) { this.y = y; }
public int getR() { return r; }
public void setR(int r) { this.r = r; }
public Color getColor() { return color; }
public void setColor(Color color) { this.color = color; }
public int getOraintation() { return oraintation; }
public void setOraintation(int oraintation) {
this.oraintation = oraintation; } }
然后是主程序BallMovingFrame.java import javax.swing.JFrame;
public class BallMovingFrame extends JFrame{ public static void main(String args[]){ BallMovingPanel panel= new BallMovingPanel(); BallMovingFrame b =new BallMovingFrame(); b.setSize(640, 480); b.setVisible(true); b.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); b.setTitle(\"ball\"); b.add(panel); panel.startRun(); } }
最后是绘制小球的程序BallMovingPanel.java
import java.awt.Color; import java.awt.Graphics; import java.util.Random;
import javax.swing.JPanel;
public class BallMovingPanel extends JPanel{ private Ball[] allBall; private Color[] color; private Ball ball; public BallMovingPanel(){ allBall=new Ball[10]; color=new Color[10]; color[0]=Color.BLACK; color[1]=Color.BLUE;
color[2]=Color.CYAN; color[3]=Color.GRAY; color[4]=Color.RED; color[5]=Color.green; color[6]=Color.YELLOW; color[7]=Color.magenta; color[8]=Color.ORANGE; color[9]=Color.LIGHT_GRAY; Random ran=new Random(); for(int i=0;i public void startRun(){ new Thread(){ public void run(){ while(true){ for(int j=0;j<10;j++){ for(int i=0;i<10;i++){ //int r = allBall[i].getR(); int f = allBall[i].getOraintation(); int m = allBall[i].getX(); int n = allBall[i].getY(); if(f==ball.LEFT_UP){ m--;n--; if(m<35){ f = ball.RIGHT_UP; } if(n<35){ f = ball.LEFT_DOWN; } }else if(f==ball.LEFT_DOWN){ m--;n++; if(m<35){ f = ball.RIGHT_DOWN; } if(n>450){ f = ball.LEFT_UP; } }else if(f==ball.RIGHT_UP){ m++;n--; if(m>640-35){ f = ball.LEFT_UP; } if(n<35){ f = ball.RIGHT_DOWN; } }else if(f==ball.RIGHT_DOWN){ m++;n++; if(m>640-60){ f = ball.LEFT_DOWN; } if(n>480-60){ f = ball.RIGHT_UP; } }else if(f==ball.UP){ n--; if(n<35){ f = ball.DOWN; } }else if(f==ball.DOWN){ n++; if(n>480-40){ f = ball.UP; } }else if(f==ball.LEFT){ m--; if(m<35){ f = ball.RIGHT; } }else if(f==ball.RIGHT){ m++; if(m>640-40){ f = ball.LEFT; } } allBall[i].setOraintation(f); allBall[i].setX(m); allBall[i].setY(n); } }try { Thread.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } repaint(); } } }.start(); } } 上面程序编制完后,我们可以更加一层楼的去提升一步,只需点击一个批处理文件就可以让其运行了。 首先确定你是windows系统,然后创建 小球.txt 文件 然后在文件中输入 javac Ball.java javac BallMovingPanel.java javac BallMovingFrame.java java BallMovingFrame 完成后报文文件。 最后将 小球.txt 文件修改成 小球.bat 文件。 完成后,就可以点击此文件进行运行了。 注意:这4个文件必须在同一文件夹下,否则会报错。 因篇幅问题不能全部显示,请点此查看更多更全内容