?? animation.java
字號:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.awt.image.*;
import java.net.*;
public class Animation extends Applet implements Runnable
{
private Thread runner;
private Image image;
private int imageWidth;
private int imageHeight;
private String imageName;
private BufferedImage offImage;
private Graphics2D offGraphics;
private boolean flag;
public void init()
{
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if(runner==null)
start();
else
stop();
}
});
try
{
imageName=getParameter("imageName");
if(imageName==null)
imageName="";
}
catch(Exception e)
{
showStatus("Error:"+e);
}
image=null;
loadImage();
}
public void loadImage()
{
try
{
URL url=new URL(getDocumentBase(),imageName);
image=getImage(url);
MediaTracker tracker=new MediaTracker(this);
tracker.addImage(image,0);
tracker.waitForID(0);
imageWidth=image.getWidth(null);
imageHeight=image.getHeight(null);
resize(imageWidth,imageHeight);
}
catch(InterruptedException e)
{
showStatus("Loading interrupted");
}
catch(MalformedURLException e)
{
showStatus("Bad URL");
}
}
public void start()
{
flag=true;
runner=new Thread(this);
runner.start();
showStatus("click to stop");
}
public void stop()
{
flag=false;
runner.interrupt();
runner=null;
showStatus("click to restart");
}
public void paint(Graphics g)
{
if(image==null)
return;
g.drawImage(image,0,0,null);
}
public void update(Graphics g)
{
Dimension d=getSize();
if(offGraphics==null)
{
offImage=new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
offGraphics=offImage.createGraphics();
}
offGraphics.drawImage(image,0,0,null);
g.drawImage(offImage,0,0,this);
}
public void run()
{
long startTime=System.currentTimeMillis();
while(flag)
{
repaint();
try
{
startTime+=100;
Thread.sleep(Math.max(0,startTime-System.currentTimeMillis()));
}
catch(InterruptedException e)
{}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -