📄 animateface.java
字号:
//Copyright (c) 1998, Arthur Gittleman
//This example is provided WITHOUT ANY WARRANTY either expressed or implied.
/* Animates a face, drawing it in three different sizes
* with an interval of 300 milliseconds between each
* repainting.
*/
import java.awt.*;
import java.applet.Applet;
public class AnimateFace extends Applet
implements Runnable{
private int x, y,width,height;
private int leftEyeX,leftEyeY,lwidth,lheight;
private int rightEyeX,rightEyeY,rwidth,rheight;
private int leftNoseX,leftNoseY,rightNoseX,rightNoseY;
private int mouthX,mouthY,mouthWidth,mouthHeight;
private boolean done;
public void start() {
x=10;y=10;width=200;height=200;
leftEyeX=50;leftEyeY=70;lwidth=30;lheight=30;
rightEyeX=150;rightEyeY=70;rwidth=30;rheight=30;
leftNoseX=90;leftNoseY=120;rightNoseX=140;rightNoseY=120;
mouthX=50;mouthY=130;mouthWidth=120;mouthHeight=40;
done = false;
Thread t = new Thread(this);
t.start();
}
public void stop() {
done = true;
}
public void paint(Graphics g) {
g.drawOval(x,y,width,height);
g.fillOval(leftEyeX,leftEyeY,lwidth,lheight);
g.fillOval(rightEyeX,rightEyeY,rwidth,rheight);
g.drawLine(leftNoseX,leftNoseY,rightNoseX,rightNoseY);
g.fillArc(mouthX,mouthY,mouthWidth,mouthHeight,180,180);
}
public void run() {
int dx=9, dy=9;
while (true) {
for (int i=0;i<3;i++) {
if (done) return;
x+=dx; y+=dy; width-=dx; height-=dy;
leftEyeX+=dx; leftEyeY+=dy;lwidth-=dx;lheight-=dy;
rightEyeX+=dx;rightEyeY+=dy;rwidth-=dx;rheight-=dy;
leftNoseX+=dx;rightNoseX-=dx;
mouthX+=dx;mouthY+=dy;mouthWidth-=dx;mouthHeight-=dy;
repaint();
try {
Thread.sleep(300);
}catch(InterruptedException e) {
e.printStackTrace();
}
}
dx = -dx; dy = -dy;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -