content: // <applet code="CPU_usage" width=800 height=600></applet>
  // FB - 201003254 
  // CPU_usage.java
  // The graph will become more and more accurate with time.
  
  import java.applet.Applet;
  import java.awt.*;
  
  public class CPU_usage extends Applet
  {
      int w,h,red[],green[],blue[];
      int maxctr=0;
    
      public void init()
      {
          // create a color palette (RGBY)
          red=new int[256];green=new int[256];blue=new int[256];
          for(int i=0;i<256;i++)
          {
              switch((int)(i/64))
              {
                  case 0:
                      red[i]=(i%64)*3+64;
                      green[i]=0;
                      blue[i]=0;
                      break;
                  case 1:
                      red[i]=0;
                      green[i]=(i%64)*3+64;
                      blue[i]=0;
                      break;
                  case 2:
                      red[i]=0;
                      green[i]=0;
                      blue[i]=(i%64)*3+64;
                      break;
                  case 3:
                      red[i]=(i%64)*3+64;
                      green[i]=(i%64)*3+64;
                      blue[i]=0;
                      break;
              }
          }
  
          w=getSize().width;h=getSize().height; // get the applet window size
      }
  
      public void paint(Graphics g) 
      {
          for(int interval=0;interval<10;interval++)
          {
              // measure the number of loops per time unit (100 ms)
              long ctm=System.currentTimeMillis(); int ctr=0;
              while((System.currentTimeMillis()-ctm)<100) ctr++;
              if(ctr>maxctr) maxctr=ctr;
      
              double bar=(double)(maxctr-ctr)/maxctr;
  
              // shift the graph area 1 pixel to the left
              g.copyArea(1,0,w-1,h,-1,0);
  
              int y=(int)(h*bar);
  
              int col=(int)(bar*255);
              Color cl=new Color(red[col],green[col],blue[col]);
              g.setColor(cl);
              g.drawLine(w-1,0,w-1,y);
              col=(int)((1-bar)*255);
              Color cl2=new Color(red[col],green[col],blue[col]);
              g.setColor(cl2);
              g.drawLine(w-1,y,w-1,h-1);    
          }
          repaint();
      }
  
      // turn off image clearing each time before repaint to stop the flickering
      // by overriding update() method
      public void update(Graphics g)
      {
          paint(g);
      }
  }
  