📄 virtualbanner.java
字号:
import java.awt.*;
import java.applet.*;
public class virtualbanner extends Applet implements Runnable
{
Thread runner;
private Image Buffer;
private Graphics gBuffer;
Image thyplane1, thyplane2, strain1, newcity1, station1, bridge, plane1, tree;
int x, x1, x2=-200, x3=668;
boolean moveRight = true;
boolean moveLeft = true;
//Initialisation before running Thread
public void init()
{
//creating graphics buffer which will equal the size of the applet
Buffer=createImage(size().width,size().height);
gBuffer=Buffer.getGraphics();
//these are all the images that will be used in this applet
thyplane1 = getImage(getCodeBase(),"thyplane1.gif");
thyplane2 = getImage(getCodeBase(),"thyplane2.gif");
strain1 = getImage(getCodeBase(),"strain1.gif");
newcity1 = getImage(getCodeBase(),"newcity1.jpg");
station1 = getImage(getCodeBase(),"station1.gif");
plane1 = getImage(getCodeBase(),"plane1.gif");
bridge = getImage(getCodeBase(),"bridge.gif");
tree = getImage(getCodeBase(),"tree.gif");
}
//The thread starts here
public void start()
{
if (runner == null)
{
runner = new Thread (this);
runner.start();
}
}
public void stop()
{
if (runner != null)
{
runner.stop();
runner = null;
}
}
public void run()
{
while(true)
{
//Thread will sleep for 15 milliseconds here
try {runner.sleep(15);}
catch (Exception e) {
}
//train will move right until it leaves applet
//then let it appear again on the left side
x++;
if(x>size().width)
x=-500;
//the plane will be left with some speed which is 5 times faster
//until it leaves applet then reappear at the right side of applet
x1-=5;
if(x1<-1200)
x1=size().width;
//this part is to move the planes until they reach a certain point which is out of the applet screen
//then send them back to origin to restart their move
if(moveRight==true)
{
if(x2<size().width+200)x2=x2+1;
else
moveRight=false;
}
if(moveLeft==true)
{
if(x3>-200)
x3=x3-2;
else
moveLeft=false;
}
if(moveRight==false)
x2=-200;
{
if(x2<size().width+200)
moveRight=true;
}
if(moveLeft==false)
x3=668;
{
if(x3>-200)
moveLeft=true;
}
//this will draw the background
gBuffer.drawImage(newcity1,0,0,this);
//this draws the planes moving across eachother
gBuffer.drawImage(thyplane2, x2,2, this);
gBuffer.drawImage(thyplane1, x3,42, this);
//this one draws the aircraft moving with the higher speed
gBuffer.drawImage(plane1, x1,90, this);
//this draws the trees which will be painted before the train moving
gBuffer.drawImage(tree, 49,181, this);
gBuffer.drawImage(tree, 80,180, this);
gBuffer.drawImage(tree, 105,182, this);
gBuffer.drawImage(tree, 285,180, this);
//here the train is drawn as well as the railway by using drawline method
gBuffer.drawLine(0,230,468,230);
gBuffer.drawImage(strain1, x,207, this);
//the bridge that the train is crossing is drawn here
gBuffer.drawImage(bridge, 0,231, this);
//This is the train station that the train in this applet never stops
gBuffer.drawImage(station1, 185,198, this);
//once again some more trees around the railway
gBuffer.drawImage(tree, 26,180, this);
gBuffer.drawImage(tree, 58,180, this);
gBuffer.drawImage(tree, 359,184, this);
gBuffer.drawImage(tree, 429,188, this);
gBuffer.drawImage(tree, 258,185, this);
gBuffer.drawImage(tree, 306,180, this);
repaint();
}//end of while true
}//end of run()
//this is needed to avoid erasing the background by Java
public void update(Graphics g)
{
paint(g);
}//end of update
public void paint(Graphics g)
{
g.drawImage (Buffer,0,0, this);
}//end of paint method
}//end of virtualbanner class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -