📄 ball.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 + -