/* File: ImageCanvas.java * Contains: ACP3 ImageCanvas - Canvas with a single changeable image * Author: Austin Tate * Created: Fri Jan 16 11:12:41 1998 * Updated: Thu Jun 22 13:00:28 2000 by Jeff Dalton * Copyright: (c) 1998, AIAI, University of Edinburgh */ package ix.util; import java.awt.*; import java.awt.image.*; import java.util.*; public class ImageCanvas extends Canvas { private Image offsc; private Dimension myDimension; public ImageCanvas(Image img) { super(); offsc=img; myDimension=new Dimension(offsc.getWidth(this),offsc.getHeight(this)); } public boolean isDoubleBuffered() { return true; // does this actually accomplish anything? /\/ } public Dimension getMinimumSize() { return myDimension; } public Dimension getPreferredSize() { return myDimension; } /* default update behaviour used, to ensure any old image is cleared out*/ /* no it isn't. jd 21 Jun 00 */ synchronized public void paint(Graphics g) { g.drawImage(offsc,0,0,this); } synchronized public void update(Graphics g) { // Don't clear -- avoid the flash paint(g); } synchronized public void setCanvasImage(Image img) { offsc=img; myDimension=new Dimension(offsc.getWidth(this),offsc.getHeight(this)); repaint(); } }