public class TruncatingTreeCellRenderer<T>
extends java.lang.Object
implements javax.swing.tree.TreeCellRenderer
This is intended to be used in contexts where the tree's width is tied to its preferred width, for example in a flat editor. In particular, this renderer should not be used with trees that are directly in a scrollpane.
Create a subclass of this class, providing an implementation of the methods getIcon() and getText(). The default implementation of getIcon() returns the standard look and feel icon for a folder or leaf. The default implementation of getText() calls String.valueOf on the node value.
Modifier and Type | Class and Description |
---|---|
class |
TruncatingTreeCellRenderer.TruncatedLabelComponent |
Constructor and Description |
---|
TruncatingTreeCellRenderer() |
Modifier and Type | Method and Description |
---|---|
protected javax.swing.Icon |
getIcon(javax.swing.JTree tree,
T value,
boolean selected,
boolean expanded,
boolean leaf,
int row)
Gets the icon to display for an item in the tree.
|
int |
getMaximumCharacters()
Returns the maximum number of characters that will be displayed before
truncation.
|
protected java.lang.String |
getText(javax.swing.JTree tree,
T value,
boolean selected,
boolean expanded,
boolean leaf,
int row)
Gets the text to display for an item in the tree.
|
java.awt.Component |
getTreeCellRendererComponent(javax.swing.JTree tree,
java.lang.Object value,
boolean selected,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus) |
boolean |
isTruncateInMiddle()
Returns whether truncation happens in the middle of text or at the end.
|
static void |
main(java.lang.String[] args) |
void |
setMaximumCharacters(int maxChars)
Sets the maximum number of characters that will be displayed before
truncation occurs.
|
void |
setTruncateInMiddle(boolean truncateInMiddle)
Sets whether truncation happens in the middle of the text, or at the
end.
|
protected static java.lang.String |
truncate(java.lang.String text,
int maxChars,
boolean truncateInMiddle)
Truncates text.
|
public final void setMaximumCharacters(int maxChars)
You will have to explicitly repaint() a JTree using this renderer before setting this value has any effect on a visible tree.
maxChars
- the maximum number of characters to display before
truncation. Must be greater than zero.public final int getMaximumCharacters()
public final void setTruncateInMiddle(boolean truncateInMiddle)
You will have to expicitly repaint() a JTree using this renderer before setting this value has any effect on a visible tree.
truncateInMiddle
- if true, truncation will happen in the
middle of the text. Otherwise, truncation will happen at the end.public final boolean isTruncateInMiddle()
public java.awt.Component getTreeCellRendererComponent(javax.swing.JTree tree, java.lang.Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
getTreeCellRendererComponent
in interface javax.swing.tree.TreeCellRenderer
protected java.lang.String getText(javax.swing.JTree tree, T value, boolean selected, boolean expanded, boolean leaf, int row)
tree
- the tree.value
- the value in this cell.selected
- if true, the tree cell is selected.expanded
- if true, the tree cell is expanded.leaf
- if true, the tree cell is a leaf.row
- the row number of the cell.protected javax.swing.Icon getIcon(javax.swing.JTree tree, T value, boolean selected, boolean expanded, boolean leaf, int row)
tree
- the tree.value
- the value in this cell.selected
- if true, the tree cell is selected.expanded
- if true, the tree cell is expanded.leaf
- if true, the tree cell is a leaf.row
- the row number of the cell.protected static final java.lang.String truncate(java.lang.String text, int maxChars, boolean truncateInMiddle)
text
- text to truncate. May be null, in which case, this method
should return the empty string.maxChars
- the maximum number of regular characters to display in
the string.truncateInMiddle
- if true, the string will be truncated
in the middle.public static void main(java.lang.String[] args)