上代码,看效果
注释还是不太熟练额。
package day04;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyBall {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame("MyBall");
frame.setSize(400, 500);
// 设置窗体居中 显示
// 不相对于任何组件
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
MyPanel panel = new MyPanel();
frame.add(panel);
panel.run();
}
}
class MyPanel extends JPanel {
int x = 30;
int y = 30;
int z = 0;//判断是++ 还是 --
int w = 0;//判断横向移动
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.BLACK);
g.fillOval(x, y, 30, 30);
}
public void run() {
while (true) {
if (z == 0) {
y++;
//判断横向
if (w == 0) {
x ++;
if ( x == 355) {
w = 1;
}
} else if (w == 1) {
x--;
if (x == 0) {
w = 0;
}
}
//判断结束
if (y == 435) {
z = 1;
}
} else if (z == 1) {
y--;
//判断横向
if (w == 0) {
x++;
if ( x== 355) {
w = 1;
}
} else if (w == 1) {
x--;
if (x == 0) {
w = 0;
}
}
//判断结束
if (y == 0) {
z = 0;
}
}
repaint();
try {
Thread.sleep(10);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}