📄 onlychangeupdate.java
字号:
// 程序:重新定义update()的可能问题
// 范例文件:OnlyChangeUpdate.java
import java.awt.*;
import java.applet.*;
public class OnlyChangeUpdate extends Applet implements Runnable
{
int X,Y,moveX,moveY,width,height;
Thread newThread; //新线程
public void init()
{
X = 0; //X坐标
Y = 0; //Y坐标
moveX = 40; //X轴移动距离
moveY = 40; //Y轴移动距离
width = getSize().width; //Applet的宽度
height = getSize().height; //Applet的高度
setBackground(Color.black); //设定背景为黑色
}
public void start() //start()函数
{
newThread = new Thread(this); //建立与启动新线程
newThread.start();
}
public void stop() //stop()函数
{
newThread = null; //将线程设为null
}
public void paint(Graphics g)
{
g.setColor(Color.white); //设定前景颜色为白色
g.fillOval(X,Y,30,30); //绘制实心正圆形
}
public void update(Graphics g) //update()函数
{
paint(g); //只单纯调用paint()函数
}
public void run()
{
while(newThread != null) //动画循环
{
repaint(); //重新绘制图像
try
{
Thread.sleep(80); //暂停程序执行80毫秒
}
catch(InterruptedException E){ }
X = X + moveX; //计算新的X坐标
Y = Y + moveY; //计算新的Y坐标
//碰撞到边界时就会反弹
if(X >= (width - 30))
{
X = width - 30;
moveX = -moveX;
}
if(X <= 0)
{
X = 0;
moveX = -moveX;
}
if(Y >= (height - 30))
{
Y = height - 30;
moveY = -moveY;
}
if(Y <= 0)
{
Y = 0;
moveY = -moveY;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -