Package org.apache.jmeter.visualizers

# Class LineGraph

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.apache.jmeter.visualizers.LineGraph

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

public class LineGraph extends JPanel
Axis graph is used by StatGraphVisualizer, which generates bar graphs from the statistical data.

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class javax.swing.JPanel

  `JPanel.AccessibleJPanel`

  ## Nested classes/interfaces inherited from class javax.swing.JComponent

  `JComponent.AccessibleJComponent`

  ## Nested classes/interfaces inherited from class java.awt.Container

  `Container.AccessibleAWTContainer`

  ## Nested classes/interfaces inherited from class java.awt.Component

  `Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected double[][]`
  `data`
  `protected int`
  `height`
  `protected int`
  `paint_counter`
  `protected int`
  `shape_counter`
  `protected String`
  `title`
  `protected int`
  `width`
  `protected String[]`
  `xAxisLabels`
  `protected String`
  `xAxisTitle`
  `protected String[]`
  `yAxisLabel`
  `protected String`
  `yAxisTitle`

  ### Fields inherited from class javax.swing.JComponent

  `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

  `accessibleContext, 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

  Constructors
  Constructor
  Description
  `LineGraph()`
  `LineGraph(LayoutManager layout)`
  `LineGraph(LayoutManager layout, boolean isDoubleBuffered)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Paint[]`
  `createPaint(int count)`
  return an array of Paint with different colors.
  `Shape[]`
  `createShapes(int count)`
  Since we only have 4 shapes, the method will start with the first shape and keep cycling through the shapes in order.
  `Stroke[]`
  `createStrokes(int count)`
  Create a given number of `Stroke`s
  `Paint`
  `nextPaint()`
  The method will return the next paint color in the PAINT_ARRAY.
  `Shape`
  `nextShape()`
  Return the next shape
  `Stroke`
  `nextStroke()`
  method always return a new BasicStroke with 1.0f weight
  `void`
  `paintComponent(Graphics g)`
  `void`
  `setData(double[][] data)`
  `void`
  `setHeight(int h)`
  `void`
  `setTitle(String title)`
  `void`
  `setWidth(int w)`
  `void`
  `setXAxisLabels(String[] labels)`
  `void`
  `setXAxisTitle(String title)`
  `void`
  `setYAxisLabels(String[] label)`
  `void`
  `setYAxisTitle(String title)`

  ### 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, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, 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, update`

  ### 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, 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 Details

  - ### data

    protected double[][] data

  - ### title

    protected String title

  - ### xAxisTitle

    protected String xAxisTitle

  - ### yAxisTitle

    protected String yAxisTitle

  - ### xAxisLabels

    protected String[] xAxisLabels

  - ### yAxisLabel

    protected String[] yAxisLabel

  - ### width

    protected int width

  - ### height

    protected int height

  - ### shape_counter

    protected int shape_counter

  - ### paint_counter

    protected int paint_counter

- ## Constructor Details

  - ### LineGraph

    public LineGraph()

  - ### LineGraph

    public LineGraph(LayoutManager layout)
    Parameters:
      `layout` - The `LayoutManager` to be used

  - ### LineGraph

    public LineGraph(LayoutManager layout, boolean isDoubleBuffered)
    Parameters:
      `layout` - The `LayoutManager` to be used
      `isDoubleBuffered` - Flag whether double buffering should be used

- ## Method Details

  - ### setData

    public void setData(double[][] data)

  - ### setTitle

    public void setTitle(String title)

  - ### setXAxisTitle

    public void setXAxisTitle(String title)

  - ### setYAxisTitle

    public void setYAxisTitle(String title)

  - ### setXAxisLabels

    public void setXAxisLabels(String[] labels)

  - ### setYAxisLabels

    public void setYAxisLabels(String[] label)

  - ### setWidth

    public void setWidth(int w)

  - ### setHeight

    public void setHeight(int h)

  - ### paintComponent

    public void paintComponent(Graphics g)
    Overrides:
      `paintComponent` in class `JComponent`

  - ### createShapes

    public Shape[] createShapes(int count)
    Since we only have 4 shapes, the method will start with the first shape and keep cycling through the shapes in order.
    Parameters:
      `count` - The number of shapes to be created
    Returns:
      the first n shapes

  - ### nextShape

    public Shape nextShape()
    Return the next shape
    Returns:
      the next shape

  - ### createStrokes

    public Stroke[] createStrokes(int count)
    Create a given number of `Stroke`s
    Parameters:
      `count` - The number of strokes to be created
    Returns:
      the first `count` strokes

  - ### nextStroke

    public Stroke nextStroke()
    method always return a new BasicStroke with 1.0f weight
    Returns:
      a new BasicStroke with 1.0f weight

  - ### createPaint

    public Paint[] createPaint(int count)
    return an array of Paint with different colors. The current implementation will cycle through 12 colors if a line graph has more than 12 entries
    Parameters:
      `count` - The number of `Paint`s to be created
    Returns:
      an array of Paint with different colors

  - ### nextPaint

    public Paint nextPaint()
    The method will return the next paint color in the PAINT_ARRAY. Rather than return a random color, we want it to always go through the same sequence. This way, the same charts will always use the same color and make it easier to compare side by side.
    Returns:
      the next paint color in the PAINT_ARRAY