|
|
Исходный текст программы MTrackerDemo.java
|
Оглавление |
Назад
// ==========================================
// MTrackerDemo.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web: http://www.glasnet.ru/~frolov
// ==========================================
import java.applet.Applet;
import java.awt.*;
public class MTrackerDemo extends Applet
implements Runnable
{
Thread thr = null;
boolean bImagesLoaded = false;
int nCurrentImage = 0;
Image[] im;
// ============================================
// start
// ============================================
public void start()
{
if(thr == null)
{
thr = new Thread(this);
thr.start();
}
}
// ============================================
// stop
// ============================================
public void stop()
{
if(thr != null)
{
thr.stop();
thr = null;
}
}
// ============================================
// run
// ============================================
public void run()
{
nCurrentImage = 0;
if(!bImagesLoaded)
{
im = new Image[3];
MediaTracker mt = new MediaTracker(this);
String s;
for(int i = 0; i < 3; i++)
{
s = "img" + (i + 1) + ".jpg";
im[i] =
getImage(getDocumentBase(), s);
mt.addImage(im[i], 0);
}
try
{
mt.waitForAll();
bImagesLoaded = !mt.isErrorAny();
}
catch(InterruptedException ie)
{
stop();
}
}
Graphics g = getGraphics();
while(true)
{
if(bImagesLoaded)
{
g.drawImage(im[nCurrentImage],
0, 0, null);
nCurrentImage++;
if(nCurrentImage > 2)
nCurrentImage = 0;
}
try
{
thr.sleep(2000);
}
catch(InterruptedException ie)
{
stop();
}
}
}
// ============================================
// paint
// ============================================
public void paint(Graphics g)
{
if(!bImagesLoaded)
g.drawString("Loading images...", 10, 30);
}
// ============================================
// getAppletInfo
// ============================================
public String getAppletInfo()
{
return "Name: MTrackerDemo";
}
}
|
|
|