/* Title: ImageBean Author: Markku Lehtinen Date: Nov -97 Description: Tämä bean lukee tiedostosta gif- tai jpg -tyyppisen kuvatiedoston ja toimii sille alustana. Kuva skaalataan beanin paneelin kokoiseksi. Properties: =========== String imageName Kuvan nimi, joko suhteessa nykyhakemistoon tai absoluuttisena */ package omat.image; import java.awt.*; import borland.jbcl.view.*; import borland.jbcl.util.BlackBox; import borland.jbcl.util.ImageLoader; import java.awt.Toolkit; public class ImageBean extends BeanPanel implements BlackBox{ Image image; int dx,dy; boolean imageReady = false; Image offscreen; public ImageBean() {} public boolean imageUpdate(Image img, int iflags, int x, int y, int w, int h) { if ( iflags == ALLBITS ) { imageReady = true; dx = w; dy = h; repaint(); } return true; } // imageName private String imageName = ""; public void setImageName(String name) { imageName = name; if ( imageName != "" ) image = ImageLoader.load(imageName,null); // image = Toolkit.getDefaultToolkit().getImage(imageName); if ( image == null ) return; prepareImage(image,this); repaint(); } public String getImageName(){ return imageName; } public void setLocation(int x, int y) { if (!imageReady ) return; super.setLocation(x,y); if ( getParent().getParent() != null ) getParent().getParent().repaint(); } public void setLocation(Point p) { setLocation(p.x,p.y); } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { if ( !imageReady ) return; super.paint(g); g.drawImage(image,0,0,getSize().width, getSize().height,0,0,dx,dy,null); } }