JSci.swing
Class JGraph2D

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byJSci.swing.JDoubleBufferedComponent
                  extended byJSci.swing.JGraph2D
All Implemented Interfaces:
java.util.EventListener, GraphDataListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
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 inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, 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  boolean numbering
          Axis numbering.
protected  java.awt.Point origin
          Origin.
protected  int scalePad
          Padding.
protected  java.awt.Color[] seriesColor
          Series colors.
protected  java.text.NumberFormat xNumberFormat
           
protected  java.text.NumberFormat yNumberFormat
           
 
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
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.
 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 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 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, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, 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, setEnabled, setFont, setForeground, 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, 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

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.


numbering

protected boolean numbering
Axis numbering.


xNumberFormat

protected java.text.NumberFormat xNumberFormat

yNumberFormat

protected java.text.NumberFormat yNumberFormat

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


addNotify

public void addNotify()

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.


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)

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)

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.


getPreferredSize

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


getMinimumSize

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


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.


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