FileDocCategorySizeDatePackage
Canvas.javaAPI DocJava SE 5 API7348Fri Aug 26 14:56:44 BST 2005java.awt

Canvas

public class Canvas extends Component implements Accessible
A Canvas component represents a blank rectangular area of the screen onto which the application can draw or from which the application can trap input events from the user.

An application must subclass the Canvas class in order to get useful functionality such as creating a custom component. The paint method must be overridden in order to perform custom graphics on the canvas.

version
1.35 03/16/04
author
Sami Shaio
since
JDK1.0

Fields Summary
private static final String
base
private static int
nameCounter
private static final long
serialVersionUID
Constructors Summary
public Canvas()
Constructs a new Canvas.


              
      
    
public Canvas(GraphicsConfiguration config)
Constructs a new Canvas given a GraphicsConfiguration object.

param
config a reference to a GraphicsConfiguration object.
see
GraphicsConfiguration

        this();
        graphicsConfig = config;
    
Methods Summary
public voidaddNotify()
Creates the peer of the canvas. This peer allows you to change the user interface of the canvas without changing its functionality.

see
java.awt.Toolkit#createCanvas(java.awt.Canvas)
see
java.awt.Component#getToolkit()

        synchronized (getTreeLock()) {
	    if (peer == null)
	        peer = getToolkit().createCanvas(this);
	    super.addNotify();
	}
    
java.lang.StringconstructComponentName()
Construct a name for this component. Called by getName() when the name is null.

        synchronized (getClass()) {
	    return base + nameCounter++;
	}
    
public voidcreateBufferStrategy(int numBuffers)
Creates a new strategy for multi-buffering on this component. Multi-buffering is useful for rendering performance. This method attempts to create the best strategy available with the number of buffers supplied. It will always create a BufferStrategy with that number of buffers. A page-flipping strategy is attempted first, then a blitting strategy using accelerated buffers. Finally, an unaccelerated blitting strategy is used.

Each time this method is called, the existing buffer strategy for this component is discarded.

param
numBuffers number of buffers to create, including the front buffer
exception
IllegalArgumentException if numBuffers is less than 1.
exception
IllegalStateException if the component is not displayable
see
#isDisplayable
see
#getBufferStrategy
since
1.4

        super.createBufferStrategy(numBuffers);
    
public voidcreateBufferStrategy(int numBuffers, java.awt.BufferCapabilities caps)
Creates a new strategy for multi-buffering on this component with the required buffer capabilities. This is useful, for example, if only accelerated memory or page flipping is desired (as specified by the buffer capabilities).

Each time this method is called, the existing buffer strategy for this component is discarded.

param
numBuffers number of buffers to create
param
caps the required capabilities for creating the buffer strategy; cannot be null
exception
AWTException if the capabilities supplied could not be supported or met; this may happen, for example, if there is not enough accelerated memory currently available, or if page flipping is specified but not possible.
exception
IllegalArgumentException if numBuffers is less than 1, or if caps is null
see
#getBufferStrategy
since
1.4

        super.createBufferStrategy(numBuffers, caps);
    
public javax.accessibility.AccessibleContextgetAccessibleContext()
Gets the AccessibleContext associated with this Canvas. For canvases, the AccessibleContext takes the form of an AccessibleAWTCanvas. A new AccessibleAWTCanvas instance is created if necessary.

return
an AccessibleAWTCanvas that serves as the AccessibleContext of this Canvas

        if (accessibleContext == null) {
            accessibleContext = new AccessibleAWTCanvas();
        }
        return accessibleContext;
    
public java.awt.image.BufferStrategygetBufferStrategy()

return
the buffer strategy used by this component
see
#createBufferStrategy
since
1.4

        return super.getBufferStrategy();
    
public voidpaint(java.awt.Graphics g)
Paints this canvas.

Most applications that subclass Canvas should override this method in order to perform some useful operation (typically, custom painting of the canvas). The default operation is simply to clear the canvas. Applications that override this method need not call super.paint(g).

param
g the specified Graphics context
see
#update(Graphics)
see
Component#paint(Graphics)

        g.clearRect(0, 0, width, height);
    
booleanpostsOldMouseEvents()

        return true;
    
public voidupdate(java.awt.Graphics g)
Updates this canvas.

This method is called in response to a call to repaint. The canvas is first cleared by filling it with the background color, and then completely redrawn by calling this canvas's paint method. Note: applications that override this method should either call super.update(g) or incorporate the functionality described above into their own code.

param
g the specified Graphics context
see
#paint(Graphics)
see
Component#update(Graphics)

        g.clearRect(0, 0, width, height);
        paint(g);