DefaultTableCellRenderer (Java 2 Platform SE 5.0) (original) (raw)


javax.swing.table

Class DefaultTableCellRenderer

java.lang.Object extended by java.awt.Component extended by java.awt.Container extended by javax.swing.JComponent extended by javax.swing.JLabel extended by javax.swing.table.DefaultTableCellRenderer

All Implemented Interfaces:

ImageObserver, MenuContainer, Serializable, Accessible, SwingConstants, TableCellRenderer

Direct Known Subclasses:

DefaultTableCellRenderer.UIResource


public class DefaultTableCellRenderer

extends JLabel

implements TableCellRenderer, Serializable

The standard class for rendering (displaying) individual cells in a JTable.

Implementation Note: This class inherits from JLabel, a standard component class. However JTable employs a unique mechanism for rendering its cells and therefore requires some slightly modified behavior from its cell renderer. The table class defines a single cell renderer and uses it as a as a rubber-stamp for rendering all cells in the table; it renders the first cell, changes the contents of that cell renderer, shifts the origin to the new location, re-draws it, and so on. The standard JLabel component was not designed to be used this way and we want to avoid triggering a revalidate each time the cell is drawn. This would greatly decrease performance because therevalidate message would be passed up the hierarchy of the container to determine whether any other components would be affected. As the renderer is only parented for the lifetime of a painting operation we similarly want to avoid the overhead associated with walking the hierarchy for painting operations. So this class overrides the validate, invalidate,revalidate, repaint, andfirePropertyChange methods to be no-ops and override the isOpaque method solely to improve performance. If you write your own renderer, please keep this performance consideration in mind.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

See Also:

JTable


Nested Class Summary
static class DefaultTableCellRenderer.UIResource A subclass of DefaultTableCellRenderer that implements UIResource.
Nested classes/interfaces inherited from class javax.swing.JLabel
JLabel.AccessibleJLabel
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.BltBufferStrategy, Component.FlipBufferStrategy
Field Summary
protected static Border noFocusBorder
Fields inherited from class javax.swing.JLabel
labelFor
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 javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Constructor Summary
DefaultTableCellRenderer() Creates a default table cell renderer.
Method Summary
void [firePropertyChange](../../../javax/swing/table/DefaultTableCellRenderer.html#firePropertyChange%28java.lang.String, boolean, boolean%29)(String propertyName, boolean oldValue, boolean newValue) Overridden for performance reasons.
protected void [firePropertyChange](../../../javax/swing/table/DefaultTableCellRenderer.html#firePropertyChange%28java.lang.String, java.lang.Object, java.lang.Object%29)(String propertyName,Object oldValue,Object newValue) Overridden for performance reasons.
Component [getTableCellRendererComponent](../../../javax/swing/table/DefaultTableCellRenderer.html#getTableCellRendererComponent%28javax.swing.JTable, java.lang.Object, boolean, boolean, int, int%29)(JTable table,Object value, boolean isSelected, boolean hasFocus, int row, int column) Returns the default table cell renderer.
void invalidate() Overridden for performance reasons.
boolean isOpaque() Overridden for performance reasons.
void repaint() Overridden for performance reasons.
void [repaint](../../../javax/swing/table/DefaultTableCellRenderer.html#repaint%28long, int, int, int, int%29)(long tm, int x, int y, int width, int height) Overridden for performance reasons.
void repaint(Rectangle r) Overridden for performance reasons.
void revalidate() Overridden for performance reasons.
void setBackground(Color c) Overrides JComponent.setBackground to assign the unselected-background color to the specified color.
void setForeground(Color c) Overrides JComponent.setForeground to assign the unselected-foreground color to the specified color.
protected void setValue(Object value) Sets the String object for the cell being rendered tovalue.
void updateUI() Notification from the UIManager that the look and feel [L&F] has changed.
void validate() Overridden for performance reasons.
Methods inherited from class javax.swing.JLabel
[checkHorizontalKey](../../../javax/swing/JLabel.html#checkHorizontalKey%28int, java.lang.String%29), [checkVerticalKey](../../../javax/swing/JLabel.html#checkVerticalKey%28int, java.lang.String%29), getAccessibleContext, getDisabledIcon, getDisplayedMnemonic, getDisplayedMnemonicIndex, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getLabelFor, getText, getUI, getUIClassID, getVerticalAlignment, getVerticalTextPosition, [imageUpdate](../../../javax/swing/JLabel.html#imageUpdate%28java.awt.Image, int, int, int, int, int%29), paramString, setDisabledIcon, setDisplayedMnemonic, setDisplayedMnemonic, setDisplayedMnemonicIndex, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabelFor, setText, setUI, setVerticalAlignment, setVerticalTextPosition
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, [contains](../../../javax/swing/JComponent.html#contains%28int, int%29), createToolTip, disable, enable, [firePropertyChange](../../../javax/swing/JComponent.html#firePropertyChange%28java.lang.String, char, char%29), [firePropertyChange](../../../javax/swing/JComponent.html#firePropertyChange%28java.lang.String, int, int%29), [fireVetoableChange](../../../javax/swing/JComponent.html#fireVetoableChange%28java.lang.String, java.lang.Object, java.lang.Object%29), getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, 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, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, [paintImmediately](../../../javax/swing/JComponent.html#paintImmediately%28int, int, int, int%29), paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, [processKeyBinding](../../../javax/swing/JComponent.html#processKeyBinding%28javax.swing.KeyStroke, java.awt.event.KeyEvent, int, boolean%29), processKeyEvent, processMouseEvent, processMouseMotionEvent, [putClientProperty](../../../javax/swing/JComponent.html#putClientProperty%28java.lang.Object, java.lang.Object%29), [registerKeyboardAction](../../../javax/swing/JComponent.html#registerKeyboardAction%28java.awt.event.ActionListener, javax.swing.KeyStroke, int%29), [registerKeyboardAction](../../../javax/swing/JComponent.html#registerKeyboardAction%28java.awt.event.ActionListener, java.lang.String, javax.swing.KeyStroke, int%29), removeAncestorListener, removeNotify, removeVetoableChangeListener, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, [reshape](../../../javax/swing/JComponent.html#reshape%28int, int, int, int%29), scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, [setFocusTraversalKeys](../../../javax/swing/JComponent.html#setFocusTraversalKeys%28int, java.util.Set%29), setFont, setInheritsPopupMenu, [setInputMap](../../../javax/swing/JComponent.html#setInputMap%28int, javax.swing.InputMap%29), setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods inherited from class java.awt.Container
add, [add](../../../java/awt/Container.html#add%28java.awt.Component, int%29), [add](../../../java/awt/Container.html#add%28java.awt.Component, java.lang.Object%29), [add](../../../java/awt/Container.html#add%28java.awt.Component, java.lang.Object, int%29), [add](../../../java/awt/Container.html#add%28java.lang.String, java.awt.Component%29), addContainerListener, [addImpl](../../../java/awt/Container.html#addImpl%28java.awt.Component, java.lang.Object, int%29), addPropertyChangeListener, [addPropertyChangeListener](../../../java/awt/Container.html#addPropertyChangeListener%28java.lang.String, java.beans.PropertyChangeListener%29), applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, [findComponentAt](../../../java/awt/Container.html#findComponentAt%28int, int%29), findComponentAt, getComponent, [getComponentAt](../../../java/awt/Container.html#getComponentAt%28int, int%29), getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, [list](../../../java/awt/Container.html#list%28java.io.PrintStream, int%29), [list](../../../java/awt/Container.html#list%28java.io.PrintWriter, int%29), [locate](../../../java/awt/Container.html#locate%28int, int%29), minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, [setComponentZOrder](../../../java/awt/Container.html#setComponentZOrder%28java.awt.Component, int%29), setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validateTree
Methods inherited from class java.awt.Component
[action](../../../java/awt/Component.html#action%28java.awt.Event, java.lang.Object%29), add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, [checkImage](../../../java/awt/Component.html#checkImage%28java.awt.Image, java.awt.image.ImageObserver%29), [checkImage](../../../java/awt/Component.html#checkImage%28java.awt.Image, int, int, java.awt.image.ImageObserver%29), [coalesceEvents](../../../java/awt/Component.html#coalesceEvents%28java.awt.AWTEvent, java.awt.AWTEvent%29), contains, createImage, [createImage](../../../java/awt/Component.html#createImage%28int, int%29), [createVolatileImage](../../../java/awt/Component.html#createVolatileImage%28int, int%29), [createVolatileImage](../../../java/awt/Component.html#createVolatileImage%28int, int, java.awt.ImageCapabilities%29), disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, [firePropertyChange](../../../java/awt/Component.html#firePropertyChange%28java.lang.String, byte, byte%29), [firePropertyChange](../../../java/awt/Component.html#firePropertyChange%28java.lang.String, double, double%29), [firePropertyChange](../../../java/awt/Component.html#firePropertyChange%28java.lang.String, float, float%29), [firePropertyChange](../../../java/awt/Component.html#firePropertyChange%28java.lang.String, long, long%29), [firePropertyChange](../../../java/awt/Component.html#firePropertyChange%28java.lang.String, short, short%29), 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](../../../java/awt/Component.html#gotFocus%28java.awt.Event, java.lang.Object%29), handleEvent, hasFocus, hide, [inside](../../../java/awt/Component.html#inside%28int, int%29), isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, [keyDown](../../../java/awt/Component.html#keyDown%28java.awt.Event, int%29), [keyUp](../../../java/awt/Component.html#keyUp%28java.awt.Event, int%29), list, list, list, location, [lostFocus](../../../java/awt/Component.html#lostFocus%28java.awt.Event, java.lang.Object%29), [mouseDown](../../../java/awt/Component.html#mouseDown%28java.awt.Event, int, int%29), [mouseDrag](../../../java/awt/Component.html#mouseDrag%28java.awt.Event, int, int%29), [mouseEnter](../../../java/awt/Component.html#mouseEnter%28java.awt.Event, int, int%29), [mouseExit](../../../java/awt/Component.html#mouseExit%28java.awt.Event, int, int%29), [mouseMove](../../../java/awt/Component.html#mouseMove%28java.awt.Event, int, int%29), [mouseUp](../../../java/awt/Component.html#mouseUp%28java.awt.Event, int, int%29), [move](../../../java/awt/Component.html#move%28int, int%29), nextFocus, paintAll, postEvent, [prepareImage](../../../java/awt/Component.html#prepareImage%28java.awt.Image, java.awt.image.ImageObserver%29), [prepareImage](../../../java/awt/Component.html#prepareImage%28java.awt.Image, int, int, java.awt.image.ImageObserver%29), processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, [removePropertyChangeListener](../../../java/awt/Component.html#removePropertyChangeListener%28java.lang.String, java.beans.PropertyChangeListener%29), [repaint](../../../java/awt/Component.html#repaint%28int, int, int, int%29), repaint, resize, [resize](../../../java/awt/Component.html#resize%28int, int%29), [setBounds](../../../java/awt/Component.html#setBounds%28int, int, int, int%29), setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, [setLocation](../../../java/awt/Component.html#setLocation%28int, int%29), setLocation, setName, setSize, [setSize](../../../java/awt/Component.html#setSize%28int, int%29), show, show, size, toString, transferFocus, transferFocusUpCycle
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, [wait](../../../java/lang/Object.html#wait%28long, int%29)
Field Detail

noFocusBorder

protected static Border noFocusBorder

Constructor Detail

DefaultTableCellRenderer

public DefaultTableCellRenderer()

Creates a default table cell renderer.

Method Detail

setForeground

public void setForeground(Color c)

Overrides JComponent.setForeground to assign the unselected-foreground color to the specified color.

Overrides:

[setForeground](../../../javax/swing/JComponent.html#setForeground%28java.awt.Color%29) in class [JComponent](../../../javax/swing/JComponent.html "class in javax.swing")

Parameters:

c - set the foreground color to this value

See Also:

Component.getForeground()


setBackground

public void setBackground(Color c)

Overrides JComponent.setBackground to assign the unselected-background color to the specified color.

Overrides:

[setBackground](../../../javax/swing/JComponent.html#setBackground%28java.awt.Color%29) in class [JComponent](../../../javax/swing/JComponent.html "class in javax.swing")

Parameters:

c - set the background color to this value

See Also:

Component.getBackground()


updateUI

public void updateUI()

Notification from the UIManager that the look and feel [L&F] has changed. Replaces the current UI object with the latest version from the UIManager.

Overrides:

[updateUI](../../../javax/swing/JLabel.html#updateUI%28%29) in class [JLabel](../../../javax/swing/JLabel.html "class in javax.swing")

See Also:

JComponent.updateUI()


getTableCellRendererComponent

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)

Returns the default table cell renderer.

Specified by:

[getTableCellRendererComponent](../../../javax/swing/table/TableCellRenderer.html#getTableCellRendererComponent%28javax.swing.JTable, java.lang.Object, boolean, boolean, int, int%29) in interface [TableCellRenderer](../../../javax/swing/table/TableCellRenderer.html "interface in javax.swing.table")

Parameters:

table - the JTable

value - the value to assign to the cell at[row, column]

isSelected - true if cell is selected

hasFocus - true if cell has focus

row - the row of the cell to render

column - the column of the cell to render

Returns:

the default table cell renderer


isOpaque

public boolean isOpaque()

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[isOpaque](../../../javax/swing/JComponent.html#isOpaque%28%29) in class [JComponent](../../../javax/swing/JComponent.html "class in javax.swing")

Returns:

true if this component is completely opaque

See Also:

JComponent.setOpaque(boolean)


invalidate

public void invalidate()

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[invalidate](../../../java/awt/Container.html#invalidate%28%29) in class [Container](../../../java/awt/Container.html "class in java.awt")

Since:

1.5

See Also:

Container.validate(), Container.layout(), LayoutManager


validate

public void validate()

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[validate](../../../java/awt/Container.html#validate%28%29) in class [Container](../../../java/awt/Container.html "class in java.awt")

See Also:

Container.add(java.awt.Component), Component.invalidate(), JComponent.revalidate()


revalidate

public void revalidate()

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[revalidate](../../../javax/swing/JComponent.html#revalidate%28%29) in class [JComponent](../../../javax/swing/JComponent.html "class in javax.swing")

See Also:

Component.invalidate(), Container.validate(), JComponent.isValidateRoot(), RepaintManager.addInvalidComponent(javax.swing.JComponent)


repaint

public void repaint(long tm, int x, int y, int width, int height)

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[repaint](../../../javax/swing/JComponent.html#repaint%28long, int, int, int, int%29) in class [JComponent](../../../javax/swing/JComponent.html "class in javax.swing")

Parameters:

tm - this parameter is not used

x - the x value of the dirty region

y - the y value of the dirty region

width - the width of the dirty region

height - the height of the dirty region

See Also:

Component.isShowing(), [RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)](../../../javax/swing/RepaintManager.html#addDirtyRegion%28javax.swing.JComponent, int, int, int, int%29)


repaint

public void repaint(Rectangle r)

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[repaint](../../../javax/swing/JComponent.html#repaint%28java.awt.Rectangle%29) in class [JComponent](../../../javax/swing/JComponent.html "class in javax.swing")

Parameters:

r - a Rectangle containing the dirty region

See Also:

Component.isShowing(), [RepaintManager.addDirtyRegion(javax.swing.JComponent, int, int, int, int)](../../../javax/swing/RepaintManager.html#addDirtyRegion%28javax.swing.JComponent, int, int, int, int%29)


repaint

public void repaint()

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[repaint](../../../java/awt/Component.html#repaint%28%29) in class [Component](../../../java/awt/Component.html "class in java.awt")

Since:

1.5

See Also:

Component.update(Graphics)


firePropertyChange

protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[firePropertyChange](../../../java/awt/Component.html#firePropertyChange%28java.lang.String, java.lang.Object, java.lang.Object%29) in class [Component](../../../java/awt/Component.html "class in java.awt")

Parameters:

propertyName - the property whose value has changed

oldValue - the property's previous value

newValue - the property's new value


firePropertyChange

public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)

Overridden for performance reasons. See the Implementation Note for more information.

Overrides:

[firePropertyChange](../../../javax/swing/JComponent.html#firePropertyChange%28java.lang.String, boolean, boolean%29) in class [JComponent](../../../javax/swing/JComponent.html "class in javax.swing")

Parameters:

propertyName - the property whose value has changed

oldValue - the property's previous value

newValue - the property's new value


setValue

protected void setValue(Object value)

Sets the String object for the cell being rendered tovalue.

Parameters:

value - the string value for this cell; if value isnull it sets the text value to an empty string

See Also:

JLabel.setText(java.lang.String)



Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright © 2004, 2010 Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.