知识点

1.窗体,面板;

2.paint()方法;

3.线程;

核心算法

小球运动到左界面边界或右界面边界时,纵坐标不变,横坐标取相反方向

小球运动到上界面边界或下界面边界时,横坐标不变,纵坐标取相反方向

run()方法实现每0.02秒,小球跳动一下

public void run() {

// TODO Auto-generated method stub

while(true){

try {

Thread.sleep(20); //小球每0.02秒跳动一次

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

/*

* 小球运动到左界面或右界面时,zy不变,zx取相反方向

* 小球运动到上界面或下界面时,zx不变,zy取相反方向

*/

if(x<0||x>getWidth()-50){ //如果小球

zx=-zx;

}

if(y<0||y>getHeight()-50){

zy=-zy;

}

x=x+zx;

y=y+zy;

repaint();//重新调用paint方法

}

}

完整代码
外汇名词解释http://www.fx61.com/definitions

Window.java

import javax.swing.JFrame;

public class Window extends JFrame{

public Window() {

setTitle("会跳的小球");

MyJpanel jp=new MyJpanel();

add(jp);

setDefaultCloseOperation(EXIT_ON_CLOSE);

setBounds(100,100,400,400);

setVisible(true);

Thread t=new Thread(jp);

t.start();

}

public static void main(String[] args) {

new Window();

}

}

MyJpanel.java

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import javax.swing.JPanel;

public class MyJpanel extends JPanel implements Runnable {

int x=0;

int y=100;

int zx=5; //小球每次跳动的x方向位移

int zy=2; //小球每次跳动的y方向位移

@Override

public void paint(Graphics g) {

g.setColor(getBackground());//设置填充色为背景色

g.fillRect(0, 0, 400, 400); //设置矩形

g.setColor(Color.GREEN); //设置绿色

g.fillOval(x, y, 50, 50);//绘制50的圆

}

@Override

public void run() {

// TODO Auto-generated method stub

while(true){

try {

Thread.sleep(20); //小球每0.02秒跳动一次

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

/*

* 小球运动到左界面或右界面时,zy不变,zx取相反方向

* 小球运动到上界面或下界面时,zx不变,zy取相反方向

*/

if(x<0||x>getWidth()-50){ //如果小球

zx=-zx;

}

if(y<0||y>getHeight()-50){

zy=-zy;

}

x=x+zx;

y=y+zy;

repaint();//重新调用paint方法

}

}

}


zhuanzhudeyipi
65 声望2 粉丝