2.第一个java小程序(用eclipse)

运行
  • Ctrl+F11
  • Alt+Shift+X,J

//引入两个包
import java.awt.*;
import javax.swing.*;  //JFrame窗口类

public class BallGame2 extends JFrame {
	
	//加载图片
	Image ball = Toolkit.getDefaultToolkit().getImage("images/ball.png");
	Image desk = Toolkit.getDefaultToolkit().getImage("images/desk.jpg");
	
	
	double x=100;  //小球横坐标
	double y=100;  //小球纵坐标

	double degree = 3.14/3;  //弧度60度
	
	//画窗口(先画桌面再画球	)
	public void paint(Graphics g) {
		System.out.println("窗口被画一次!");
		g.drawImage(desk, 0, 0, null);  //没有重复画图就会出现 图片懒加载问题
		g.drawImage(ball, (int)x, (int)y, null);
		
		x = x+10*Math.cos(degree);
		y = y+10*Math.sin(degree);
				
		if(y > 500-40-30 || y < 80) {
			degree = -degree;
		}
		if(x > 856-40-30 || x < 40) {
			degree = 3.14-degree;
		}
	}
	
	
	
	
	//窗口加载
	void launchFrame() {
		setSize(856, 500);  //窗口大小,单位是像素
		setLocation(50, 50);  //位置相对于屏幕左上角那一点为坐标原点,横为x坐标轴
		setVisible(true);
		
		//为了使小球动起来,需要不断重画窗口
		while(true) {
			repaint();  //不能肆无忌惮的重画,应该加上睡眠repaint调用了paint方法
			
			//sleep异常处理 try catch
			try {
				Thread.sleep(40); //40ms   1000/40 = 25  25帧
			}catch(Exception e) {
				e.printStackTrace();
			}
			
		}
	}
	
	//main方法是程序执行的入口
	public static void main(String[] args){
		System.out.println("欢迎来到桌球小游戏!");
		BallGame2 game = new BallGame2();  //构造一个对象
		game.launchFrame();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值