Class DefaultTreeCellRenderer
- All Implemented Interfaces:
-
ImageObserver
,MenuContainer
,Serializable
,Accessible
,SwingConstants
,TreeCellRenderer
public class DefaultTreeCellRenderer extends JLabel implements TreeCellRenderer
DefaultTreeCellRenderer
is not opaque and unless you subclass paint you should not change this. See How to Use Trees in The Java Tutorial for examples of customizing node display using this class. The set of icons and colors used by DefaultTreeCellRenderer
can be configured using the various setter methods. The value for each property is initialized from the defaults table. When the look and feel changes (updateUI
is invoked), any properties that have a value of type UIResource
are refreshed from the defaults table. The following table lists the mapping between DefaultTreeCellRenderer
property and defaults table key:
Property | Key |
---|---|
"leafIcon" | "Tree.leafIcon" |
"closedIcon" | "Tree.closedIcon" |
"openIcon" | "Tree.openIcon" |
"textSelectionColor" | "Tree.selectionForeground" |
"textNonSelectionColor" | "Tree.textForeground" |
"backgroundSelectionColor" | "Tree.selectionBackground" |
"backgroundNonSelectionColor" | "Tree.textBackground" |
"borderSelectionColor" | "Tree.selectionBorderColor" |
Implementation Note: This class overrides invalidate
, validate
, revalidate
, repaint
, and firePropertyChange
solely to improve performance. If not overridden, these frequently called methods would execute code paths that are unnecessary for the default tree cell renderer. If you write your own renderer, take care to weigh the benefits and drawbacks of overriding these methods.
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 JavaBeans has been added to the java.beans
package. Please see XMLEncoder
.
Nested Class Summary
Nested classes/interfaces declared in class javax.swing.JLabel
JLabel.AccessibleJLabel
Nested classes/interfaces declared in class javax.swing.JComponent
JComponent.AccessibleJComponent
Nested classes/interfaces declared in class java.awt.Container
Container.AccessibleAWTContainer
Nested classes/interfaces declared in class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Field Summary
Modifier and Type | Field | Description |
---|---|---|
protected Color |
backgroundNonSelectionColor |
Color to use for the background when the node isn't selected. |
protected Color |
backgroundSelectionColor |
Color to use for the background when a node is selected. |
protected Color |
borderSelectionColor |
Color to use for the focus indicator when the node has focus. |
protected Icon |
closedIcon |
Icon used to show non-leaf nodes that aren't expanded. |
protected boolean |
hasFocus |
True if has focus. |
protected Icon |
leafIcon |
Icon used to show leaf nodes. |
protected Icon |
openIcon |
Icon used to show non-leaf nodes that are expanded. |
protected boolean |
selected |
Is the value currently selected. |
protected Color |
textNonSelectionColor |
Color to use for the foreground for non-selected nodes. |
protected Color |
textSelectionColor |
Color to use for the foreground for selected nodes. |
Fields declared in class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Fields declared in class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields declared in interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields declared in 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
Constructor Summary
Constructor | Description |
---|---|
DefaultTreeCellRenderer() |
Creates a DefaultTreeCellRenderer . |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
void |
firePropertyChange |
Overridden for performance reasons. |
void |
firePropertyChange |
Overridden for performance reasons. |
void |
firePropertyChange |
Overridden for performance reasons. |
void |
firePropertyChange |
Overridden for performance reasons. |
void |
firePropertyChange |
Overridden for performance reasons. |
void |
firePropertyChange |
Overridden for performance reasons. |
void |
firePropertyChange |
Overridden for performance reasons. |
void |
firePropertyChange |
Overridden for performance reasons. |
protected void |
firePropertyChange |
Overridden for performance reasons. |
Color |
getBackgroundNonSelectionColor() |
Returns the background color to be used for non selected nodes. |
Color |
getBackgroundSelectionColor() |
Returns the color to use for the background if node is selected. |
Color |
getBorderSelectionColor() |
Returns the color the border is drawn. |
Icon |
getClosedIcon() |
Returns the icon used to represent non-leaf nodes that are not expanded. |
Icon |
getDefaultClosedIcon() |
Returns the default icon, for the current laf, that is used to represent non-leaf nodes that are not expanded. |
Icon |
getDefaultLeafIcon() |
Returns the default icon, for the current laf, that is used to represent leaf nodes. |
Icon |
getDefaultOpenIcon() |
Returns the default icon, for the current laf, that is used to represent non-leaf nodes that are expanded. |
Font |
getFont() |
Gets the font of this component. |
Icon |
getLeafIcon() |
Returns the icon used to represent leaf nodes. |
Icon |
getOpenIcon() |
Returns the icon used to represent non-leaf nodes that are expanded. |
Dimension |
getPreferredSize() |
Overrides JComponent.getPreferredSize to return slightly wider preferred size value. |
Color |
getTextNonSelectionColor() |
Returns the color the text is drawn with when the node isn't selected. |
Color |
getTextSelectionColor() |
Returns the color the text is drawn with when the node is selected. |
Component |
getTreeCellRendererComponent |
Configures the renderer based on the passed in components. |
void |
invalidate() |
Overridden for performance reasons. |
void |
paint |
Paints the value. |
void |
repaint() |
Overridden for performance reasons. |
void |
repaint |
Overridden for performance reasons. |
void |
repaint |
Overridden for performance reasons. |
void |
revalidate() |
Overridden for performance reasons. |
void |
setBackground |
Subclassed to map ColorUIResource s to null. |
void |
setBackgroundNonSelectionColor |
Sets the background color to be used for non selected nodes. |
void |
setBackgroundSelectionColor |
Sets the color to use for the background if node is selected. |
void |
setBorderSelectionColor |
Sets the color to use for the border. |
void |
setClosedIcon |
Sets the icon used to represent non-leaf nodes that are not expanded. |
void |
setFont |
Subclassed to map FontUIResource s to null. |
void |
setLeafIcon |
Sets the icon used to represent leaf nodes. |
void |
setOpenIcon |
Sets the icon used to represent non-leaf nodes that are expanded. |
void |
setTextNonSelectionColor |
Sets the color the text is drawn with when the node isn't selected. |
void |
setTextSelectionColor |
Sets the color the text is drawn with when the node is selected. |
void |
updateUI() |
Resets the UI property to a value from the current look and feel. |
void |
validate() |
Overridden for performance reasons. |
Methods declared in class javax.swing.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 declared in class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, 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, 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, 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, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
Methods declared in 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, 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 declared in 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, 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
Field Details
selected
protected boolean selected
hasFocus
protected boolean hasFocus
closedIcon
protected transient Icon closedIcon
leafIcon
protected transient Icon leafIcon
openIcon
protected transient Icon openIcon
textSelectionColor
protected Color textSelectionColor
textNonSelectionColor
protected Color textNonSelectionColor
backgroundSelectionColor
protected Color backgroundSelectionColor
backgroundNonSelectionColor
protected Color backgroundNonSelectionColor
borderSelectionColor
protected Color borderSelectionColor
Constructor Details
DefaultTreeCellRenderer
public DefaultTreeCellRenderer()
DefaultTreeCellRenderer
. Icons and text color are determined from the UIManager
.Method Details
updateUI
public void updateUI()
getDefaultOpenIcon
public Icon getDefaultOpenIcon()
- Returns:
- the default icon, for the current laf, that is used to represent non-leaf nodes that are expanded.
getDefaultClosedIcon
public Icon getDefaultClosedIcon()
- Returns:
- the default icon, for the current laf, that is used to represent non-leaf nodes that are not expanded.
getDefaultLeafIcon
public Icon getDefaultLeafIcon()
- Returns:
- the default icon, for the current laf, that is used to represent leaf nodes.
setOpenIcon
public void setOpenIcon(Icon newIcon)
- Parameters:
-
newIcon
- the icon to be used for expanded non-leaf nodes
getOpenIcon
public Icon getOpenIcon()
- Returns:
- the icon used to represent non-leaf nodes that are expanded
setClosedIcon
public void setClosedIcon(Icon newIcon)
- Parameters:
-
newIcon
- the icon to be used for not expanded non-leaf nodes
getClosedIcon
public Icon getClosedIcon()
- Returns:
- the icon used to represent non-leaf nodes that are not expanded
setLeafIcon
public void setLeafIcon(Icon newIcon)
- Parameters:
-
newIcon
- icon to be used for leaf nodes
getLeafIcon
public Icon getLeafIcon()
- Returns:
- the icon used to represent leaf nodes
setTextSelectionColor
public void setTextSelectionColor(Color newColor)
- Parameters:
-
newColor
- color to be used for text when the node is selected
getTextSelectionColor
public Color getTextSelectionColor()
- Returns:
- the color the text is drawn with when the node is selected
setTextNonSelectionColor
public void setTextNonSelectionColor(Color newColor)
- Parameters:
-
newColor
- color to be used for text when the node isn't selected
getTextNonSelectionColor
public Color getTextNonSelectionColor()
- Returns:
- the color the text is drawn with when the node isn't selected.
setBackgroundSelectionColor
public void setBackgroundSelectionColor(Color newColor)
- Parameters:
-
newColor
- to be used for the background if the node is selected
getBackgroundSelectionColor
public Color getBackgroundSelectionColor()
- Returns:
- the color to use for the background if node is selected
setBackgroundNonSelectionColor
public void setBackgroundNonSelectionColor(Color newColor)
- Parameters:
-
newColor
- color to be used for the background for non selected nodes
getBackgroundNonSelectionColor
public Color getBackgroundNonSelectionColor()
- Returns:
- the background color to be used for non selected nodes.
setBorderSelectionColor
public void setBorderSelectionColor(Color newColor)
- Parameters:
-
newColor
- color to be used for the border
getBorderSelectionColor
public Color getBorderSelectionColor()
- Returns:
- the color the border is drawn
setFont
public void setFont(Font font)
FontUIResource
s to null. If font
is null, or a FontUIResource
, this has the effect of letting the font of the JTree show through. On the other hand, if font
is non-null, and not a FontUIResource
, the font becomes font
.- Overrides:
-
setFont
in classJComponent
- Parameters:
-
font
- the desiredFont
for this component - See Also:
getFont
public Font getFont()
- Specified by:
-
getFont
in interfaceMenuContainer
- Overrides:
-
getFont
in classComponent
- Returns:
- this component's font; if a font has not been set for this component, the font of its parent is returned
- See Also:
setBackground
public void setBackground(Color color)
ColorUIResource
s to null. If color
is null, or a ColorUIResource
, this has the effect of letting the background color of the JTree show through. On the other hand, if color
is non-null, and not a ColorUIResource
, the background becomes color
.- Overrides:
-
setBackground
in classJComponent
- Parameters:
-
color
- the desired backgroundColor
- See Also:
getTreeCellRendererComponent
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus)
convertValueToText
, which ultimately invokes toString
on value
. The foreground color is set based on the selection and the icon is set based on the leaf
and expanded
parameters.- Specified by:
-
getTreeCellRendererComponent
in interfaceTreeCellRenderer
- Parameters:
-
tree
- the receiver is being configured for -
value
- the value to render -
sel
- whether node is selected -
expanded
- whether node is expanded -
leaf
- whether node is a lead node -
row
- row index -
hasFocus
- whether node has focus - Returns:
- the
Component
that the renderer uses to draw the value
paint
public void paint(Graphics g)
- Overrides:
-
paint
in classJComponent
- Parameters:
-
g
- theGraphics
context in which to paint - See Also:
getPreferredSize
public Dimension getPreferredSize()
JComponent.getPreferredSize
to return slightly wider preferred size value.- Overrides:
-
getPreferredSize
in classJComponent
- Returns:
- the value of the
preferredSize
property - See Also:
validate
public void validate()
invalidate
public void invalidate()
- Overrides:
-
invalidate
in classContainer
- Since:
- 1.5
- See Also:
revalidate
public void revalidate()
repaint
public void repaint(long tm, int x, int y, int width, int height)
- Overrides:
-
repaint
in classJComponent
- 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:
repaint
public void repaint(Rectangle r)
- Overrides:
-
repaint
in classJComponent
- Parameters:
-
r
- aRectangle
containing the dirty region - See Also:
repaint
public void repaint()
firePropertyChange
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
- Overrides:
-
firePropertyChange
in classComponent
- 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, byte oldValue, byte newValue)
- Overrides:
-
firePropertyChange
in classComponent
- Parameters:
-
propertyName
- the programmatic name of the property that was changed -
oldValue
- the old value of the property (as a byte) -
newValue
- the new value of the property (as a byte) - See Also:
firePropertyChange
public void firePropertyChange(String propertyName, char oldValue, char newValue)
- Overrides:
-
firePropertyChange
in classComponent
- Parameters:
-
propertyName
- the programmatic name of the property that was changed -
oldValue
- the old value of the property (as a char) -
newValue
- the new value of the property (as a char) - See Also:
firePropertyChange
public void firePropertyChange(String propertyName, short oldValue, short newValue)
- Overrides:
-
firePropertyChange
in classComponent
- Parameters:
-
propertyName
- the programmatic name of the property that was changed -
oldValue
- the old value of the property (as a short) -
newValue
- the new value of the property (as a short) - See Also:
firePropertyChange
public void firePropertyChange(String propertyName, int oldValue, int newValue)
- Overrides:
-
firePropertyChange
in classJComponent
- 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, long oldValue, long newValue)
- Overrides:
-
firePropertyChange
in classComponent
- Parameters:
-
propertyName
- the programmatic name of the property that was changed -
oldValue
- the old value of the property (as a long) -
newValue
- the new value of the property (as a long) - See Also:
firePropertyChange
public void firePropertyChange(String propertyName, float oldValue, float newValue)
- Overrides:
-
firePropertyChange
in classComponent
- Parameters:
-
propertyName
- the programmatic name of the property that was changed -
oldValue
- the old value of the property (as a float) -
newValue
- the new value of the property (as a float) - See Also:
firePropertyChange
public void firePropertyChange(String propertyName, double oldValue, double newValue)
- Overrides:
-
firePropertyChange
in classComponent
- Parameters:
-
propertyName
- the programmatic name of the property that was changed -
oldValue
- the old value of the property (as a double) -
newValue
- the new value of the property (as a double) - See Also:
firePropertyChange
public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue)
- Overrides:
-
firePropertyChange
in classJComponent
- Parameters:
-
propertyName
- the property whose value has changed -
oldValue
- the property's previous value -
newValue
- the property's new value
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/tree/DefaultTreeCellRenderer.html