package toy.dialog; import java.awt.*; import toy.image.*; /** * * @author Brian Tsang * @version 7.0 */ public class ToyImageLabel extends Component { private ToyImageManager imageManager; private int imageIndex; public ToyImageLabel(ToyImageManager newImageManager, int newImageIndex) { imageManager = newImageManager; imageIndex = newImageIndex; } //////////////////////////////////////////////////////////////////////////// // Describe our new Component public boolean isFocusTraversable() { return false; } public boolean isDoubleBuffered() { return false; } public boolean isLightweight() { return true; } //////////////////////////////////////////////////////////////////////////// // The get and set functions public boolean hasFocus() { return false; } public void setEnabled(boolean b) { super.setEnabled(b); repaint(); } public void setVisible(boolean b) { if (b == isVisible()) return; super.setVisible(b); if (getParent() != null) { if (b) repaint(); else getParent().repaint( getBounds().x, getBounds().y, getBounds().width, getBounds().height ); } } public void setImageIndex(int newImageIndex) { imageIndex = newImageIndex; repaint(); } public int getImageIndex() { return imageIndex; } //////////////////////////////////////////////////////////////////////////// // Overriding the painting functions public void repaint() { paint(getGraphics()); } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { if (getParent() == null || !isVisible() || !getParent().isVisible() || g == null) return; g.drawImage(imageManager.getImage(imageIndex), 0, 0, this); } }