JSci.swing
Class JGraph2D

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by JSci.swing.JDoubleBufferedComponent
                  extended by JSci.swing.JGraph2D
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, GraphDataListener
Direct Known Subclasses:
JLineGraph, JScatterGraph

public abstract class JGraph2D
extends JDoubleBufferedComponent
implements GraphDataListener

The JGraph2D superclass provides an abstract encapsulation of 2D graphs. There is some support for the handling of NaN values.

See Also:
Serialized Form

Nested Class Summary
 
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  Graph2D.DataMarker dataMarker
           
protected  boolean gridLines
           
protected  int leftAxisPad
           
static int LINEAR_SCALE
           
static int LOG_SCALE
           
protected  Graph2DModel model
          Data model.
protected  java.awt.Point origin
          Origin.
protected  int scalePad
          Padding.
protected  java.awt.Color[] seriesColor
          Series colors.
protected  boolean xAxisLine
           
protected  java.text.NumberFormat xNumberFormat
           
protected  boolean xNumbering
          Axis numbering.
protected  boolean yAxisLine
           
protected  java.text.NumberFormat yNumberFormat
           
protected  boolean yNumbering
          Axis numbering.
 
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
JGraph2D(Graph2DModel gm)
          Constructs a 2D graph.
 
Method Summary
 void addNotify()
           
 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.
protected  void drawData(java.awt.Graphics g)
          Draws the graph data.
protected  void drawXLabel(java.awt.Graphics g, double x, java.awt.Point p)
           
protected  void drawYLabel(java.awt.Graphics g, double y, java.awt.Point p)
           
 java.awt.Color getColor(int n)
          Gets the color of the nth y-series.
 java.awt.geom.Rectangle2D.Float getExtrema()
          Returns the bounding box for the axis extrema.
 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.
 float getXIncrement()
          Returns the x-axis numbering increment.
 float getXMaximum()
           
 float getXMinimum()
           
 float getYIncrement()
          Returns the y-axis numbering increment.
 float getYMaximum()
           
 float getYMinimum()
           
protected  void offscreenPaint(java.awt.Graphics g)
          Paints the graph (draws the graph axes and data).
protected  void rescale()
          Rescales this graph.
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 setAxisLines(boolean xFlag, boolean yFlag)
          Turns the axis lines on/off.
 void setBounds(int x, int y, int width, int height)
          Reshapes this graph to the specified bounding box.
 void setColor(int n, java.awt.Color c)
          Sets the color of the nth y-series.
 void setGridLines(boolean flag)
          Turns grid lines on/off.
 void setMarker(Graph2D.DataMarker marker)
          Sets the data marker used to draw data points.
 void setModel(Graph2DModel gm)
          Sets the data plotted by this graph to the specified data.
 void setNumberFormat(java.text.NumberFormat format)
          Sets the display format used for axis numbering.
 void setNumbering(boolean flag)
          Turns axis numbering on/off.
 void setNumbering(boolean xFlag, boolean yFlag)
           
 void setXExtrema(float min, float max)
          Sets the minimum/maximum values on the x-axis.
 void setXExtrema(float min, float max, float growth)
           
 void setXIncrement(float dx)
          Sets the x-axis numbering increment.
 void setXNumberFormat(java.text.NumberFormat format)
          Sets the display format used for x-axis numbering.
 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 setYExtrema(float min, float max, float growth)
           
 void setYIncrement(float dy)
          Sets the y-axis numbering increment.
 void setYNumberFormat(java.text.NumberFormat format)
          Sets the display format used for y-axis numbering.
 void setYScale(int t)
          Sets the y-axis scale type.
 
Methods inherited from class JSci.swing.JDoubleBufferedComponent
getOffscreenGraphics, isDoubleBuffered, paintComponent, printComponent, redraw, setDoubleBuffered, update
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, 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, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateUI
 
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, 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, 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, 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.


origin

protected java.awt.Point origin
Origin.


dataMarker

protected Graph2D.DataMarker dataMarker

seriesColor

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


xNumbering

protected boolean xNumbering
Axis numbering.


yNumbering

protected boolean yNumbering
Axis numbering.


xNumberFormat

protected java.text.NumberFormat xNumberFormat

yNumberFormat

protected java.text.NumberFormat yNumberFormat

xAxisLine

protected boolean xAxisLine

yAxisLine

protected boolean yAxisLine

gridLines

protected boolean gridLines

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

JGraph2D

public JGraph2D(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. Supports incremental updates. Application code will not use this method explicitly, it is used internally.

Specified by:
dataChanged in interface GraphDataListener

setNumbering

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


setNumbering

public final void setNumbering(boolean xFlag,
                               boolean yFlag)

addNotify

public void addNotify()
Overrides:
addNotify in class javax.swing.JComponent

setNumberFormat

public final void setNumberFormat(java.text.NumberFormat format)
Sets the display format used for axis numbering. Convenience method.

See Also:
setXNumberFormat(NumberFormat), setYNumberFormat(NumberFormat)

setXNumberFormat

public final void setXNumberFormat(java.text.NumberFormat format)
Sets the display format used for x-axis numbering.


setYNumberFormat

public final void setYNumberFormat(java.text.NumberFormat format)
Sets the display format used for y-axis numbering.


setAxisLines

public final void setAxisLines(boolean xFlag,
                               boolean yFlag)
Turns the axis lines on/off.


setGridLines

public final void setGridLines(boolean flag)
Turns grid lines on/off. Default is off.


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).

getXIncrement

public final float getXIncrement()
Returns the x-axis numbering increment.


setYIncrement

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

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

getYIncrement

public final float getYIncrement()
Returns the y-axis numbering increment.


setXExtrema

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


setXExtrema

public final void setXExtrema(float min,
                              float max,
                              float growth)
Parameters:
growth - amount to extend the x-axis by, when data exceeds the extrema.

getXMinimum

public final float getXMinimum()

getXMaximum

public final float getXMaximum()

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).


setYExtrema

public final void setYExtrema(float min,
                              float max,
                              float growth)
Parameters:
growth - amount to extend the y-axis by, when data exceeds the extrema.

getYMinimum

public final float getYMinimum()

getYMaximum

public final float getYMaximum()

getExtrema

public final java.awt.geom.Rectangle2D.Float getExtrema()
Returns the bounding box for the axis extrema.


setMarker

public final void setMarker(Graph2D.DataMarker marker)
Sets the data marker used to draw data points.


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.

getColor

public final java.awt.Color getColor(int n)
Gets the color of the nth y-series.

Parameters:
n - the index of the y-series.

setBounds

public final void setBounds(int x,
                            int y,
                            int width,
                            int height)
Reshapes this graph 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 this graph.


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.


drawXLabel

protected void drawXLabel(java.awt.Graphics g,
                          double x,
                          java.awt.Point p)

drawYLabel

protected void drawYLabel(java.awt.Graphics g,
                          double y,
                          java.awt.Point p)

drawData

protected void drawData(java.awt.Graphics g)
Draws the graph data. Override this method to change how the graph data is plotted.


offscreenPaint

protected void offscreenPaint(java.awt.Graphics g)
Paints the graph (draws the graph axes and data).

Specified by:
offscreenPaint in class JDoubleBufferedComponent