JSci.awt
Class Graph2D

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by JSci.awt.DoubleBufferedCanvas
                      extended by JSci.awt.Graph2D
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, GraphDataListener
Direct Known Subclasses:
LineGraph, ScatterGraph

public abstract class Graph2D
extends DoubleBufferedCanvas
implements GraphDataListener

The Graph2D superclass provides an abstract encapsulation of 2D graphs.

Version:
1.3
Author:
Mark Hale
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
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
protected  int axisPad
           
protected  int leftAxisPad
           
static int LINEAR_SCALE
           
static int LOG_SCALE
           
protected  Graph2DModel model
          Data model.
protected  boolean numbering
          Axis numbering.
protected  java.awt.Point origin
          Origin.
protected  int scalePad
          Padding.
protected  java.awt.Color[] seriesColor
          Series colors.
 
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.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
Graph2D(Graph2DModel gm)
          Constructs a 2D graph.
 
Method Summary
 void dataChanged(GraphDataEvent e)
          Implementation of GraphDataListener.
protected  java.awt.Point dataToScreen(float x, float y)
          Converts a data point to screen coordinates.
protected  void drawAxes(java.awt.Graphics g)
          Draws the graph axes.
 java.awt.Dimension getMinimumSize()
          Returns the minimum size of this component.
 Graph2DModel getModel()
          Returns the model used by this graph.
 java.awt.Dimension getPreferredSize()
          Returns the preferred size of this component.
protected  void rescale()
          Rescales the Graph2D.
protected static float round(float x)
          Rounds numbers to so many significant figures.
protected  java.awt.Point scaledDataToScreen(float x, float y)
          Converts a scaled data point to screen coordinates.
protected  java.awt.geom.Point2D.Float screenToData(java.awt.Point p)
          Converts a screen point to data coordinates.
 void setBounds(int x, int y, int width, int height)
          Reshapes the Graph2D to the specified bounding box.
 void setColor(int n, java.awt.Color c)
          Sets the color of the nth y-series.
 void setModel(Graph2DModel gm)
          Sets the data plotted by this graph to the specified data.
 void setNumbering(boolean flag)
          Turns axis numbering on/off.
 void setXIncrement(float dx)
          Sets the x-axis numbering increment.
 void setXScale(int t)
          Sets the x-axis scale type.
 void setYExtrema(float min, float max)
          Sets the minimum/maximum values on the y-axis.
 void setYIncrement(float dy)
          Sets the y-axis numbering increment.
 void setYScale(int t)
          Sets the y-axis scale type.
 
Methods inherited from class JSci.awt.DoubleBufferedCanvas
offscreenPaint, paint, print, redraw, update
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LINEAR_SCALE

public static final int LINEAR_SCALE
See Also:
Constant Field Values

LOG_SCALE

public static final int LOG_SCALE
See Also:
Constant Field Values

model

protected Graph2DModel model
Data model.


numbering

protected boolean numbering
Axis numbering.


origin

protected java.awt.Point origin
Origin.


seriesColor

protected java.awt.Color[] seriesColor
Series colors.


scalePad

protected final int scalePad
Padding.

See Also:
Constant Field Values

axisPad

protected final int axisPad
See Also:
Constant Field Values

leftAxisPad

protected int leftAxisPad
Constructor Detail

Graph2D

public Graph2D(Graph2DModel gm)
Constructs a 2D graph.

Method Detail

setModel

public final void setModel(Graph2DModel gm)
Sets the data plotted by this graph to the specified data.


getModel

public final Graph2DModel getModel()
Returns the model used by this graph.


dataChanged

public void dataChanged(GraphDataEvent e)
Implementation of GraphDataListener.

Specified by:
dataChanged in interface GraphDataListener

setNumbering

public final void setNumbering(boolean flag)
Turns axis numbering on/off. Default is on.


setXScale

public final void setXScale(int t)
Sets the x-axis scale type.

Parameters:
t - a _SCALE constant.

setYScale

public final void setYScale(int t)
Sets the y-axis scale type.

Parameters:
t - a _SCALE constant.

setXIncrement

public final void setXIncrement(float dx)
Sets the x-axis numbering increment.

Parameters:
dx - use 0.0f for auto-adjusting (default).

setYIncrement

public final void setYIncrement(float dy)
Sets the y-axis numbering increment.

Parameters:
dy - use 0.0f for auto-adjusting (default).

setYExtrema

public final void setYExtrema(float min,
                              float max)
Sets the minimum/maximum values on the y-axis. Set both min and max to 0.0f for auto-adjusting (default).


setColor

public final void setColor(int n,
                           java.awt.Color c)
Sets the color of the nth y-series.

Parameters:
n - the index of the y-series.
c - the line color.

setBounds

public final void setBounds(int x,
                            int y,
                            int width,
                            int height)
Reshapes the Graph2D to the specified bounding box.

Overrides:
setBounds in class java.awt.Component

getPreferredSize

public java.awt.Dimension getPreferredSize()
Returns the preferred size of this component.

Overrides:
getPreferredSize in class javax.swing.JComponent

getMinimumSize

public java.awt.Dimension getMinimumSize()
Returns the minimum size of this component.

Overrides:
getMinimumSize in class javax.swing.JComponent

rescale

protected final void rescale()
Rescales the Graph2D.


dataToScreen

protected final java.awt.Point dataToScreen(float x,
                                            float y)
Converts a data point to screen coordinates.


scaledDataToScreen

protected final java.awt.Point scaledDataToScreen(float x,
                                                  float y)
Converts a scaled data point to screen coordinates.


screenToData

protected final java.awt.geom.Point2D.Float screenToData(java.awt.Point p)
Converts a screen point to data coordinates.


drawAxes

protected final void drawAxes(java.awt.Graphics g)
Draws the graph axes.


round

protected static final float round(float x)
Rounds numbers to so many significant figures.