?? wavepicture.java
字號:
import java.awt.*;
import java.applet.*;
import java.awt.image.*;
public class WavePicture extends Applet implements Runnable
{
private Image img,iBack;
private Image offI;
private Graphics offG,gBack;
private Thread thread = null;
private MediaTracker imageTracker;
private int startX,startY,flagW,flagH;
private int backPix[],flagPix[],blackPix[];
private int height,width;
public void init()
{
img = getImage(getDocumentBase(),"flag.gif");
imageTracker = new MediaTracker(this);
imageTracker.addImage(img,0);
width = this.size().width;
height = this.size().height;
startX = 20;
startY = 20;
try
{
imageTracker.waitForID(0);
}
catch(InterruptedException e){}
flagW = img.getWidth(this);
flagH = img.getHeight(this);
flagPix = new int[flagW*flagH];
backPix = new int[width*height];
offI = createImage(width,height);
offG = offI.getGraphics();
iBack = createImage(width,height);
gBack = iBack.getGraphics();
gBack.setColor(Color.black);
gBack.fillRect(0,0,width,height);
PixelGrabber grabber = new PixelGrabber(img,0,0,flagW,flagH,flagPix,0,flagW);
try
{
grabber.grabPixels();
}
catch(InterruptedException ex)
{
}
grabber = new PixelGrabber(iBack,0,0,width,height,backPix,0,width);
try
{
grabber.grabPixels();
}
catch(InterruptedException ex)
{
}
for(int i=0; i<flagH; i++)
{
for(int j=0; j<flagW; j++)
{
backPix[(i+startY)*width + j+startX] = flagPix[i*flagW + j];
}
}
iBack = createImage(new MemoryImageSource(width,height,backPix,0,width));
}
public void start()
{
if(thread == null)
{
thread = new Thread(this);
thread.start();
}
}
public void run()
{
double rad=0,rad_inc=30;
while(thread != null)
{
int x=0;
try
{
thread.sleep(100);
rad += rad_inc;
if(rad >=360)
{
rad=0;
}
offG.setColor(Color.black);
offG.fillRect(0,0,width,height);
for(int i=0; i<height; i++)
{
for(int j=0; j<width; j++)
{
backPix[i*width + j] = 0;
}
}
for(int i=0; i<flagH; i++)
{
for(int j=0; j<flagW; j++)
{
x = (int)(5*Math.cos((2*(rad+j*3)*Math.PI)/360));
backPix[(i+startY + x)*width + (j+startX)] = flagPix[i*flagW + j];
}
}
iBack = createImage(new MemoryImageSource(width,height,backPix,0,width));
offG.drawImage(iBack,0,0,this);
repaint();
}
catch(InterruptedException e){}
}
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
g.drawImage(offI,0,0,this);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -