UPMT-master/java/upmt/src/local/ua/ImagePanel.java
package local.ua;



import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;



/** A Panel with a backgroung image
 */
class ImagePanel extends Panel
{
   Image image=null;

   public ImagePanel(Image image)
   {  this.image=image;
      try
      { jbInit();
      }
      catch(Exception e)
      {  e.printStackTrace();
      }
   }

   private void jbInit() throws Exception
   {  this.setBackground(Color.black);
   }

   public void paint(Graphics g)
   {  //System.out.print("*");
      if (image!=null)
      {  int width=this.getSize().width;
         int height=this.getSize().height;
         double ratio=(double)width/height;

         if (image!=null && image.getWidth(null)>0)
         {  // resized image
            Image aux=image.getScaledInstance(width,height,Image.SCALE_FAST);
            // wait for image loading..
            int attempts=4;
            while( (attempts--)>0 && aux.getWidth(null)<0) try { Thread.sleep(80); } catch (Exception e) {}

            /*
            double x=width/2;
            double y=height/2;
            int dx=aux.getWidth(null)/2;
            int dy=aux.getHeight(null)/2;
            g.drawImage(aux,(int)(x-dx),(int)(y-dy),null);
            */
            g.drawImage(aux,0,0,null);
         }
      }
      else
      {  g.setColor(Color.red);
         g.fillRect(0,0,this.getSize().width,this.getSize().height);
      }
   }
}
