java入門第四天作業之彈不出框的小球

上代碼,看效果
註釋還是不太熟練額。


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();
			}
		}
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章