dwr学习

1.图中的小太阳会自动弹回


2.源码:

/**
 * Frame编程基础
 * @author dell
 *
 */
public class GameFrame extends Frame {    //Frame 是带有标题和边框的顶层窗口。
	
	Image img = GameUtil.getImage("images/sun.jpg");
	
	/**
	 * 
	 */
	public void launchFrame(){
		setSize(500, 500);//调整组件的大小,使其宽度为 width,高度为 height。
		setLocation(0, 0);//将组件移到新位置。通过此组件父级坐标空间中的 x 和 y 参数来指定新位置的左上角。
		setVisible(true);//根据参数 b 的值显示或隐藏此组件。
		
		
		new PaintThread().start();  //启动线程
		
		addWindowListener(new WindowAdapter() {//添加指定的窗口侦听器,以从此窗口接收窗口事件。如果 l 为 null,则不抛出任何异常,且不执行任何操作。
			@Override
			public void windowClosing(WindowEvent e) {//当窗口已被关闭时调用。
				System.exit(0);
			}
			
		});
	}
	
	private double x=100,y=100;
	private boolean up;
	
	@Override
	public void paint(Graphics g) {//Graphics类是所有图形上下文的抽象基类,允许应用程序在组件(已经在各种设备上实现)以及闭屏图像上进行绘制。
		g.drawLine(100, 100, 200, 200);//在点之间使用当前颜色绘制一条线
		g.drawRect(100, 100, 200, 200);// 绘制指定矩形的边框。
		g.drawOval(100, 100, 200, 150);//绘制椭圆的边框。
		
		Font f =new Font("宋体",Font.BOLD,20);//Font 类表示字体,可以使用它以可见方式呈现文本。字体提供将字符 序列映射到字形 序列所需要的信息,以便在 Graphics 对象和 Component 对象上呈现字形序列。
		g.setFont(f);// 将此图形上下文的字体设置为指定字体。
		
		g.drawString("大大大打打", 200, 200);//使用此图形上下文的当前字体和颜色绘制由指定字符串给出的文本。 最左边字符的基线位于此图形上下文坐标系中的位置(x,y)处。
		
		g.fillRect(100, 100, 20, 20);//填充指定的矩形
		
		Color c = g.getColor();
		g.setColor(Color.red);//将此图形上下文的当前颜色设置为指定的颜色。
		g.fillOval(300, 300, 20, 20);//用当前颜色填充指定矩形的椭圆。
		g.setColor(c);// 使用当前颜色填充外接指定矩形框的椭圆。
		
		g.drawImage(img, (int)x, (int)y, null);// 绘制指定图像中当前可用的图像。
		
		if(up){
			y -= 10;
			x -= 10;
		}else{
			y +=10;
			x +=10;
		}
		if(y>500-30){
			up = true;
		}
		if(y<30){
			up = false;
		}
	}

	/**
	 * 该线程不断的重绘组件,模拟其动态效果
	 */
	class PaintThread extends Thread {
		public void run(){
			while(true){
				repaint();//repaint 重绘此组件。如果组件是轻量组件,则此方法会尽快调用此组件的 paint 方法。否则此方法会尽快调用此组件的 update 方法。
				try {
					Thread.sleep(100); //1s = 1000ms
				} catch (InterruptedException e) {
					e.printStackTrace();
				}   
			}
		}
	}
	



	public static void main(String[] args) {
		GameFrame gf = new GameFrame();
		gf.launchFrame();
	}
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值