## visad.java2d
Class VisADCanvasJ2D

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      visad.java2d.VisADCanvasJ2D

All Implemented Interfaces:
  Accessible, ImageObserver, MenuContainer, Runnable, Serializable

public class VisADCanvasJ2D
extends JPanel
implements Runnable

`VisADCanvasJ2D` is the VisAD "Canvas" for Java2D. But not really a `Canvas`, since `Canvas` is heavyweight.

See Also:
  Serialized Form

Nested Class Summary

Nested classes inherited from class javax.swing.JPanel
`JPanel.AccessibleJPanel`

Nested classes inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Nested classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Nested classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary
`(package private) boolean` `captureFlag`
`(package private) BufferedImage` `captureImage`
`(package private) MouseHelper` `helper`
`(package private) Dimension` `prefSize`
`(package private) boolean` `timeout`
`(package private) boolean` `wakeup`

Fields inherited from class javax.swing.JComponent
`accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

Fields inherited from class java.awt.Container
``

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
`VisADCanvasJ2D(DisplayRendererJ2D renderer, Component c)`
`VisADCanvasJ2D(DisplayRendererJ2D renderer, int w, int h)` Constructor for offscreen rendering.

Method Summary
`void` `addKeyboardBehavior(KeyboardBehaviorJ2D behavior)` Add a `KeyboardBehavior` for keyboard control of translation and zoom.
`void` `addMouseBehavior(MouseBehaviorJ2D mouse)` Add a `MouseBehavior` for mouse control of translation and zoom.
`void` `createImages(int len)`
`static void` `drawAppearance(Graphics graphics, VisADAppearance appearance, AffineTransform t, Rectangle2D.Float clip)` This assumes only VisADPointArray or VisADLineArray.
`boolean` `getAutoAspect()`
`float[]` `getBackgroundColor()` Return the background color.
`Dimension` `getPreferredSize()`
`AffineTransform` `getTransform()`
`void` `paintComponent(Graphics g)`
`void` `renderTrigger()` trigger render to screen
`void` `run()`
`void` `scratchImages()`
`void` `setAutoAspect(boolean auto)`
`void` `setBackgroundColor(float r, float g, float b)` Set the background color.
`void` `setBounds(int x, int y, int width, int height)`
`(package private) void` `setClip(float xlow, float xhi, float ylow, float yhi)`
`(package private) void` `setDirect(VisADGroup d, VisADGroup nd)`
`void` `setPreferredSize(Dimension size)`
`void` `stop()`
`(package private) void` `unsetClip()`

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree`

Methods inherited from class java.awt.Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### prefSize

    Dimension prefSize

### captureFlag

    boolean captureFlag

### captureImage

    BufferedImage captureImage

### helper

    MouseHelper helper

### wakeup

    boolean wakeup

### timeout

    boolean timeout

Constructor Detail

### VisADCanvasJ2D

    public VisADCanvasJ2D(DisplayRendererJ2D renderer,
                          Component c)

### VisADCanvasJ2D

    public VisADCanvasJ2D(DisplayRendererJ2D renderer,
                          int w,
                          int h)

  Constructor for offscreen rendering.

Parameters:
  `renderer` -
  `w` -
  `h` -

Method Detail

### getBackgroundColor

    public float[] getBackgroundColor()

  Return the background color.

  Returns:
    A 3 element array of `float` values in the range `[0.0f - 1.0f]` in the order (Red, Green, Blue).

### setBackgroundColor

    public void setBackgroundColor(float r,
                                   float g,
                                   float b)

  Set the background color. All values should be in the range `[0.0f - 1.0f]`.

  Parameters:
    `r` - Red value.
    `g` - Green value.
    `b` - Blue value.

### setDirect

    void setDirect(VisADGroup d,
                   VisADGroup nd)

### setClip

    void setClip(float xlow,
                 float xhi,
                 float ylow,
                 float yhi)

### unsetClip

    void unsetClip()

### addMouseBehavior

    public void addMouseBehavior(MouseBehaviorJ2D mouse)

  Add a `MouseBehavior` for mouse control of translation and zoom. This adds `MouseListener`s to the VisADCanvasJ2D to handle the behaviors for the mouse events. Do not use this in conjunction with other `MouseListener`s that handle events for the default VisAD mouse controls.

  Parameters:
    `mouse` - mouse behavior to add

### addKeyboardBehavior

    public void addKeyboardBehavior(KeyboardBehaviorJ2D behavior)

  Add a `KeyboardBehavior` for keyboard control of translation and zoom. This adds a `KeyListener` to the VisADCanvasJ2D to handle the behaviors for the arrow keys. Do not use this in conjunction with other `KeyListener`s that handle events for the arrow keys.

  Parameters:
    `behavior` - keyboard behavior to add

### createImages

    public void createImages(int len)

### scratchImages

    public void scratchImages()

### renderTrigger

    public void renderTrigger()

  trigger render to screen

### stop

    public void stop()

### run

    public void run()

  Specified by:
    `run` in interface `Runnable`

### paintComponent

    public void paintComponent(Graphics g)

### drawAppearance

    public static void drawAppearance(Graphics graphics,
                                      VisADAppearance appearance,
                                      AffineTransform t,
                                      Rectangle2D.Float clip)

  This assumes only VisADPointArray or VisADLineArray.

  Parameters:
    `graphics` -
    `appearance` -
    `t` -
    `clip` -

### getTransform

    public AffineTransform getTransform()

### getPreferredSize

    public Dimension getPreferredSize()

### setPreferredSize

    public void setPreferredSize(Dimension size)

### getAutoAspect

    public boolean getAutoAspect()

### setAutoAspect

    public void setAutoAspect(boolean auto)

### setBounds

    public void setBounds(int x,
                          int y,
                          int width,
                          int height)