# 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 JPanel

`JPanel.AccessibleJPanel`

### Nested classes/interfaces inherited from class JComponent

`JComponent.AccessibleJComponent`

### Nested classes/interfaces inherited from class Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class 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 JComponent

`listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class Component

`accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface 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 JPanel

`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

### Methods inherited from class 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 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 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 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