package local.ua; import java.awt.Panel; import java.awt.Image; import java.awt.Graphics; import java.awt.Color; /** A Panel with a backgroung image */ public 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); } } }