org.jscience.swing
Class JGraph2D

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.jscience.swing.JDoubleBufferedComponent
                  extended by org.jscience.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.

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
          DOCUMENT ME!
protected  Graph2D.DataMarker dataMarker
          DOCUMENT ME!
protected  boolean gridLines
          DOCUMENT ME!
protected  int leftAxisPad
          DOCUMENT ME!
static int LINEAR_SCALE
          DOCUMENT ME!
static int LOG_SCALE
          DOCUMENT ME!
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
          DOCUMENT ME!
protected  java.text.NumberFormat yNumberFormat
          DOCUMENT ME!
 
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 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.Color getColor(int n)
          Gets the color of the nth y-series.
 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 offscreenPaint(java.awt.Graphics g)
          Paints the graph.
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)
          DOCUMENT ME!
 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)
          DOCUMENT ME!
 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 org.jscience.swing.JDoubleBufferedComponent
getOffscreenGraphics, isDoubleBuffered, paintComponent, printComponent, redraw, setDoubleBuffered, update
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, 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
DOCUMENT ME!

See Also:
Constant Field Values

LOG_SCALE

public static final int LOG_SCALE
DOCUMENT ME!

See Also:
Constant Field Values

model

protected Graph2DModel model
Data model.


origin

protected java.awt.Point origin
Origin.


dataMarker

protected Graph2D.DataMarker dataMarker
DOCUMENT ME!


seriesColor

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


numbering

protected boolean numbering
Axis numbering.


xNumberFormat

protected java.text.NumberFormat xNumberFormat
DOCUMENT ME!


yNumberFormat

protected java.text.NumberFormat yNumberFormat
DOCUMENT ME!


gridLines

protected boolean gridLines
DOCUMENT ME!


scalePad

protected final int scalePad
Padding.

See Also:
Constant Field Values

axisPad

protected final int axisPad
DOCUMENT ME!

See Also:
Constant Field Values

leftAxisPad

protected int leftAxisPad
DOCUMENT ME!

Constructor Detail

JGraph2D

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

Parameters:
gm - DOCUMENT ME!
Method Detail

setModel

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

Parameters:
gm - DOCUMENT ME!

getModel

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

Returns:
DOCUMENT ME!

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
Parameters:
e - DOCUMENT ME!

setNumbering

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

Parameters:
flag - DOCUMENT ME!

setNumberFormat

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

Parameters:
format - DOCUMENT ME!
See Also:
setXNumberFormat(NumberFormat), setYNumberFormat(NumberFormat)

setXNumberFormat

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

Parameters:
format - DOCUMENT ME!

setYNumberFormat

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

Parameters:
format - DOCUMENT ME!

setGridLines

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

Parameters:
flag - DOCUMENT ME!

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).
Throws:
java.lang.IllegalArgumentException - DOCUMENT ME!

setYIncrement

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

Parameters:
dy - use 0.0f for auto-adjusting (default).
Throws:
java.lang.IllegalArgumentException - DOCUMENT ME!

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

Parameters:
min - DOCUMENT ME!
max - DOCUMENT ME!
Throws:
java.lang.IllegalArgumentException - DOCUMENT ME!

setXExtrema

public final void setXExtrema(float min,
                              float max,
                              float growth)
DOCUMENT ME!

Parameters:
min - DOCUMENT ME!
max - DOCUMENT ME!
growth - DOCUMENT ME!

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

Parameters:
min - DOCUMENT ME!
max - DOCUMENT ME!
Throws:
java.lang.IllegalArgumentException - DOCUMENT ME!

setYExtrema

public final void setYExtrema(float min,
                              float max,
                              float growth)
DOCUMENT ME!

Parameters:
min - DOCUMENT ME!
max - DOCUMENT ME!
growth - DOCUMENT ME!

setMarker

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

Parameters:
marker - DOCUMENT ME!

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.
Returns:
DOCUMENT ME!

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
Parameters:
x - DOCUMENT ME!
y - DOCUMENT ME!
width - DOCUMENT ME!
height - DOCUMENT ME!

getPreferredSize

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

Overrides:
getPreferredSize in class javax.swing.JComponent
Returns:
DOCUMENT ME!

getMinimumSize

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

Overrides:
getMinimumSize in class javax.swing.JComponent
Returns:
DOCUMENT ME!

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.

Parameters:
x - DOCUMENT ME!
y - DOCUMENT ME!
Returns:
DOCUMENT ME!

scaledDataToScreen

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

Parameters:
x - DOCUMENT ME!
y - DOCUMENT ME!
Returns:
DOCUMENT ME!

screenToData

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

Parameters:
p - DOCUMENT ME!
Returns:
DOCUMENT ME!

drawAxes

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

Parameters:
g - DOCUMENT ME!

offscreenPaint

protected void offscreenPaint(java.awt.Graphics g)
Paints the graph.

Specified by:
offscreenPaint in class JDoubleBufferedComponent
Parameters:
g - DOCUMENT ME!