⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ball.java

📁 一个碰撞球的小程序
💻 JAVA
字号:
/*
 * 这是一个在applet内部显示一个蓝色反弹球的程序。
 *
 * 通过一个mousePressed事件使该球开始运动。
 * 
 * 在该球撞击applet边框时,它从边框弹回并以相反的方向运行。
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Ball extends JApplet implements Runnable
{
	private Thread blueBall;
	private boolean xUp,yUp,bouncing;
	private int x,y,xDx,yDy;
	private final int MAX_X=200,MAX_Y=200;
	
	public void init()
	{
		xUp=false;
		yUp=false;
		xDx=1;
		yDy=1;
		bouncing=false;
		
		addMouseListener(
			
			new MouseListener(){
				public void mousePressed(MouseEvent event)
				{
					createBall(event);
				}
				
				public void mouseExited(MouseEvent event){}
				
				public void mouseClicked(MouseEvent event){}
				
				public void mouseReleased(MouseEvent event){}
				
				public void mouseEntered(MouseEvent event){}
			}
		);
		
		setSize(MAX_X,MAX_Y);
	}
	
	private void createBall(MouseEvent event)
	{
		if(blueBall==null){
			x=event.getX();
			y=event.getY();
			blueBall=new Thread(this);
			
			bouncing=true;
			blueBall.start();
		}
	}
	
	
	public void stop()
	{
		blueBall=null;
	}
	
	public void paint(Graphics g)
	{
		super.paint(g);
		
		if(bouncing){
			g.setColor(Color.blue);
			g.fillOval(x,y,10,10);
		}
	}
	
	public void run()
	{
		while(true){
			try{
				blueBall.sleep(20);
			}
			
			catch(InterruptedException exception){
				System.err.println(exception.toString());
			}
			
			if(xUp==true)
			x+=xDx;
			else
			x-=xDx;
			
			if(yUp==true)
			y+=yDy;
			else
			y-=yDy;
			
			if(y<=0){
				yUp=true;
				yDy=(int)(Math.random()*5+2);
			}
			
			else if(y>=MAX_Y-10){
				yDy=(int)(Math.random()*5+2);
				yUp=false;
			}
			
			if(x<=0){
				xUp=true;
				xDx=(int)(Math.random()*5+2);
			}
			
			else if(x>=MAX_X-10){
				xUp=false;
				xDx=(int)(Math.random()*5+2);
			}
			
			repaint();
			
		}
		
	}
	
}
			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -