📄 bouncingball.java
字号:
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;
addMouseListener(
new MouseListener(){
public void mousePressed(MouseEvent event){
creatBall(event);
}
public void mouseExited(MouseEvent event){}
public void mouseClicked(MouseEvent event){}
public void mouseReleased(MouseEvent event){}
public void mouseEntered(MouseEvent event){}
}//end new
);
setSize(MAX_X,MAX_Y);
}//end init();
private void creatBall(MouseEvent event){
if(blueBall==null){
x=event.getX();
y=event.getY();
blueBall=new Thread(this);
bouncing=true;
blueBall.start();
}
}//end creatball
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(10);
}catch(InterruptedException e){
System.err.println(e.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){
yUp=false;
yDy=(int)(Math.random()*5+2);
}
if(x<=0){
xUp=true;
xDx=(int)(Math.random()*5+2);
}else if(x>=MAX_Y-10){
xUp=false;
xDx=(int)(Math.random()*5+2);
}
repaint();
}
}
}//end Class Ball
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -