# Class NumericCellRenderer

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JLabel
javax.swing.table.DefaultTableCellRenderer
uk.ac.starlink.table.gui.NumericCellRenderer

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

public class NumericCellRenderer extends DefaultTableCellRenderer
Provides better rendering of numeric table cells than the default JTable renderer. Single-element primitive arrays are treated just like the corresponding wrapper classes, and the first few elements of a multi-element array are displayed. Numeric values are displayed with decimal points aligned and so on. This class is generally adapted to display of numeric values, but it can render Strings or other Objects too.

Cell rendering can be further refined by extending this class and overriding the `setValue(Object)` method.

Author:
  Mark Taylor (Starlink)
See Also:
  - Serialized Form

## Nested Class Summary

### Nested classes/interfaces inherited from class DefaultTableCellRenderer

`DefaultTableCellRenderer.UIResource`

### Nested classes/interfaces inherited from class JLabel

`JLabel.AccessibleJLabel`

### 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
`static final int`
`MAX_SHOW_ELEMENTS`
The most elements that will be shown in a single cell.

### Fields inherited from class DefaultTableCellRenderer

`noFocusBorder`

### Fields inherited from class JLabel

`labelFor`

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

### Fields inherited from interface SwingConstants

`BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

## Constructor Summary

Constructors
Constructor
Description
`NumericCellRenderer(Class<?> clazz)`
Construct a new NumericCellRenderer with a hint about the values it will be expected to render.

## Method Summary

Modifier and Type
Method
Description
`Font`
`getCellFont()`
Returns the font in which cell contents will be rendererd.
`int`
`getCellWidth()`
Returns the advised width for table cells rendered by this object, on the assumption that the objects it is asked to render are as per the constructor.
`void`
`setBadValue(Object badValue)`
Sets a value to be regarded as bad when found in a non-header cell.
`void`
`setCellFont(Font font)`
Sets the font in which to render cell contents.
`protected void`
`setValue(Object value)`
Sets the state of this renderer, overriding the method in `DefaultTableCellRenderer` to provide more intelligent behaviour.

### Methods inherited from class DefaultTableCellRenderer

`firePropertyChange, firePropertyChange, getTableCellRendererComponent, invalidate, isOpaque, repaint, repaint, repaint, revalidate, setBackground, setForeground, updateUI, validate`

### Methods inherited from class JLabel

`checkHorizontalKey, checkVerticalKey, getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, imageUpdate, paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition`

### Methods inherited from class JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, 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, 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, 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, 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, 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, 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

### MAX_SHOW_ELEMENTS

public static final int MAX_SHOW_ELEMENTS
The most elements that will be shown in a single cell.

See Also:
  - Constant Field Values

## Constructor Details

### NumericCellRenderer

public NumericCellRenderer(Class<?> clazz)
Construct a new NumericCellRenderer with a hint about the values it will be expected to render. An attempt will be made to render other objects, but the alignment and so on may not be so good.

Parameters:
  `clazz` - the type of object it will expect to render on the whole

## Method Details

### setCellFont

public void setCellFont(Font font)
Sets the font in which to render cell contents.

Parameters:
  `font` - the font to use for text rendering

### getCellFont

public Font getCellFont()
Returns the font in which cell contents will be rendererd.

Returns:
  the font used for text rendering

### setValue

protected void setValue(Object value)
Sets the state of this renderer, overriding the method in `DefaultTableCellRenderer` to provide more intelligent behaviour.

Subclasses note: the work is done by invoking this object's `setText` and possibly `setIcon` methods (remember this object is a `javax.swing.JLabel`).

Overrides:
  `setValue` in class `DefaultTableCellRenderer`
Parameters:
  `value` - the value to be rendered

### setBadValue

public void setBadValue(Object badValue)
Sets a value to be regarded as bad when found in a non-header cell. Any cell containing an object which `equals()` this value will be represented specially in the table body (currently just blank).

Parameters:
  `badValue` - the special bad value

### getCellWidth

public int getCellWidth()
Returns the advised width for table cells rendered by this object, on the assumption that the objects it is asked to render are as per the constructor.

Returns:
  the advised cell width in pixels