home *** CD-ROM | disk | FTP | other *** search
/ Borland JBuilder 6 / jbuilder6.iso / Documents / JAVA Programming / examples / 18 / TrackedImageLoad.java < prev   
Encoding:
Java Source  |  2000-09-08  |  1.1 KB  |  52 lines

  1. /* <title>TrackedImageLoad</title>
  2. * <applet code="TrackedImageLoad" width=290 height=140>
  3. * <param name="img" value="mupk.gif">
  4. * </applet>
  5. */
  6. import java.applet.*;
  7. import java.awt.*;
  8. public class TrackedImageLoad extends Applet implements Runnable { 
  9. MediaTracker tracker;
  10. int tracked;
  11. Thread motor;
  12. boolean loaded;
  13. Image art;
  14. public void init() {
  15. tracker = new MediaTracker(this);
  16. art = getImage(getDocumentBase(), getParameter("img"));
  17. tracker.addImage(art, tracked++);
  18. }
  19. public void paint(Graphics g) { 
  20. if (imagesLoaded()) {
  21. g.drawImage(art, 0, 0, null);
  22. loaded = true;
  23. }
  24. else {
  25. // ºñÑß∞ ¡πª¡« óδóÑßΓ¿ ºáßΓáó¬π 
  26. } }
  27. public boolean imagesLoaded() {
  28. boolean done = false;
  29. for(int i=0; i<tracked; i++) { 
  30. done &= tracker.checkID(i, true);
  31. System.out.println(i + " : " + (loaded?"done":"loading"));
  32. }
  33. return(done);
  34. }
  35. public void start() {
  36. motor = new Thread(this);
  37. motor.start();
  38. }
  39. public void stop() { 
  40. motor.stop();
  41. }
  42. public void run() {
  43. motor.setPriority(Thread.MIN_PRIORITY);
  44. while(!loaded) { // repaint progress indicator (5 fps) 
  45. repaint();
  46. try {
  47. motor.sleep(200);
  48. }
  49. catch (InterruptedException e) {}
  50. }
  51. } }
  52.