ctf.view
Class Double_buffered_canvas

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Canvas
          extended by ctf.view.Double_buffered_canvas
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
FieldView

abstract class Double_buffered_canvas
extends java.awt.Canvas

Implement double buffering. Thanks to MPBL.

Parts of this file are COPYRIGHT (C) 1999 by Michael Bruce-Lockhart.

Other parts are COPYRIGHT (C) 1999 by Theodore S. Norvell.

The associated software is released to students for educational purposes only and only for the duration of the course in which it is handed out. No other use of the software, either commercial or non-commercial, may be made without the express permission of the authors.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
Double_buffered_canvas()
           
 
Method Summary
protected abstract  void draw_canvas(java.awt.Graphics g)
           
 void finalize()
          Overloaded from java.lang.Object, disposes of offscreen graphics
 void paint(java.awt.Graphics screen)
          Unless a redraw has been triggered paint simply brings forward the existing offscreen image
 void refresh()
          Refresh the view.
 void setBounds(int x, int y, int w, int h)
          All component shaping operations call setBounds().
 void update(java.awt.Graphics screen)
          Double-buffered update first draws the required graphics offcreen, then copies them forward to the screen.
 
Methods inherited from class java.awt.Canvas
addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Double_buffered_canvas

Double_buffered_canvas()
Method Detail

draw_canvas

protected abstract void draw_canvas(java.awt.Graphics g)

refresh

public void refresh()
Refresh the view. Calling this method will cause the view to be updated to reflect the current state of the game. You should either call this whenever a change is made to the game state (e.g. something moves).


update

public void update(java.awt.Graphics screen)
Double-buffered update first draws the required graphics offcreen, then copies them forward to the screen.

Overrides:
update in class java.awt.Canvas
Parameters:
screen - Graphics object to update

paint

public void paint(java.awt.Graphics screen)
Unless a redraw has been triggered paint simply brings forward the existing offscreen image

Overrides:
paint in class java.awt.Canvas
Parameters:
screen - Graphics object to update

setBounds

public void setBounds(int x,
                      int y,
                      int w,
                      int h)
All component shaping operations call setBounds(). Overloaded from java.awt.Canvas function so that a repaint() is triggered.

Overrides:
setBounds in class java.awt.Component
Parameters:
x - Top left corner x-cordinate
y - Top left corner y-coordinate
w - Width of component
h - Height of component

finalize

public void finalize()
Overloaded from java.lang.Object, disposes of offscreen graphics

Overrides:
finalize in class java.lang.Object