// ColorButton.java import java.awt.*; public class ColorButton extends Canvas { public static final int ORIGINAL = 1, CENTER = 2, FULL = 3; public boolean hasLife = false; private int alignment; private Color color; private boolean isVisible = true, raised = true; private Image image; public ColorButton(Image _image, int _alignment, Color _color) { super(); image = _image; alignment = _alignment; color = _color; } public void setImage(Image _image) { image = _image; } public void setVisibility(boolean _isVisible) { isVisible = _isVisible; } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { Image offscreenImage; Graphics offscreenGraphics; offscreenImage = createImage(this.getSize().width, this.getSize().height); offscreenGraphics = offscreenImage.getGraphics(); offscreenGraphics.setColor(color); offscreenGraphics.fill3DRect(0, 0, getSize().width, getSize().height, raised); if (isVisible) if (alignment == ORIGINAL) offscreenGraphics.drawImage(image, 0, 0, this); else if (alignment == FULL) offscreenGraphics.drawImage(image, 10, 10, getSize().width, getSize().height, this); else { int x = Math.max((getSize().width - image.getWidth(this))/2, 0); int y = Math.max((getSize().height - image.getHeight(this))/2, 0); offscreenGraphics.drawImage(image, x, y, this); } g.drawImage(offscreenImage, 0, 0, this); } public Dimension getPreferredSize() { return new Dimension(image.getWidth(this), image.getHeight(this)); } }