|
JavaTM 2 Platform Std. Ed. v1.4.2_16 |
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTree
A control that displays a set of hierarchical data as an outline. You can find task-oriented documentation and examples of using trees in How to Use Trees, a section in The Java Tutorial.
A specific node in a tree can be identified either by a
TreePath (an object
that encapsulates a node and all of its ancestors), or by its
display row, where each row in the display area displays one node.
An expanded node is a non-leaf node (as identified by
TreeModel.isLeaf(node) returning false) that will displays
its children when all its ancestors are expanded.
A collapsed
node is one which hides them. A hidden node is one which is
under a collapsed ancestor. All of a viewable nodes parents
are expanded, but may or may not be displayed. A displayed node
is both viewable and in the display area, where it can be seen.
The following JTree methods use "visible" to mean "displayed":
isRootVisible()
setRootVisible()
scrollPathToVisible()
scrollRowToVisible()
getVisibleRowCount()
setVisibleRowCount()
The next group of JTree methods use "visible" to mean
"viewable" (under an expanded parent):
isVisible()
makeVisible()
If you are interested in knowing when the selection changes implement
the TreeSelectionListener interface and add the instance
using the method addTreeSelectionListener.
valueChanged will be invoked when the
selection changes, that is if the user clicks twice on the same
node valueChanged will only be invoked once.
If you are interested in detecting either double-click events or when a user clicks on a node, regardless of whether or not it was selected, we recommend you do the following:
final JTree tree = ...;
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
};
tree.addMouseListener(ml);
NOTE: This example obtains both the path and row, but you only need to
get the one you're interested in.
To use JTree to display compound nodes
(for example, nodes containing both
a graphic icon and text), subclass TreeCellRenderer and use
setCellRenderer(javax.swing.tree.TreeCellRenderer) to tell the tree to use it. To edit such nodes,
subclass TreeCellEditor and use setCellEditor(javax.swing.tree.TreeCellEditor).
Like all JComponent classes, you can use InputMap and
ActionMap
to associate an Action object with a KeyStroke
and execute the action under specified conditions.
For the keyboard keys used by this component in the standard Look and
Feel (L&F) renditions, see the
JTree key assignments.
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.
| Nested Class Summary | |
protected class |
JTree.AccessibleJTree
This class implements accessibility support for the JTree class. |
static class |
JTree.DynamicUtilTreeNode
DynamicUtilTreeNode can wrap
vectors/hashtables/arrays/strings and
create the appropriate children tree nodes as necessary. |
protected static class |
JTree.EmptySelectionModel
EmptySelectionModel is a TreeSelectionModel
that does not allow anything to be selected. |
protected class |
JTree.TreeModelHandler
Listens to the model and updates the expandedState
accordingly when nodes are removed, or changed. |
protected class |
JTree.TreeSelectionRedirector
Handles creating a new TreeSelectionEvent with the
JTree as the
source and passing it off to all the listeners. |
| Nested classes inherited from class javax.swing.JComponent |
JComponent.AccessibleJComponent |
| Nested classes inherited from class java.awt.Container |
Container.AccessibleAWTContainer |
| Nested classes inherited from class java.awt.Component |
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy |
| Field Summary | |
static String |
ANCHOR_SELECTION_PATH_PROPERTY
Bound property name for anchor selection path. |
static String |
CELL_EDITOR_PROPERTY
Bound property name for cellEditor. |
static String |
CELL_RENDERER_PROPERTY
Bound property name for cellRenderer. |
protected TreeCellEditor |
cellEditor
Editor for the entries. |
protected TreeCellRenderer |
cellRenderer
The cell used to draw nodes. |
protected boolean |
editable
Is the tree editable? Default is false. |
static String |
EDITABLE_PROPERTY
Bound property name for editable. |
static String |
EXPANDS_SELECTED_PATHS_PROPERTY
Bound property name for expands selected paths property |
static String |
INVOKES_STOP_CELL_EDITING_PROPERTY
Bound property name for messagesStopCellEditing. |
protected boolean |
invokesStopCellEditing
If true, when editing is to be stopped by way of selection changing, data in tree changing or other means stopCellEditing
is invoked, and changes are saved. |
static String |
LARGE_MODEL_PROPERTY
Bound property name for largeModel. |
protected boolean |
largeModel
Is this tree a large model? This is a code-optimization setting. |
static String |
LEAD_SELECTION_PATH_PROPERTY
Bound property name for leadSelectionPath. |
static String |
ROOT_VISIBLE_PROPERTY
Bound property name for rootVisible. |
protected boolean |
rootVisible
True if the root node is displayed, false if its children are the highest visible nodes. |
static String |
ROW_HEIGHT_PROPERTY
Bound property name for rowHeight. |
protected int |
rowHeight
Height to use for each display row. |
static String |
SCROLLS_ON_EXPAND_PROPERTY
Bound property name for scrollsOnExpand. |
protected boolean |
scrollsOnExpand
If true, when a node is expanded, as many of the descendants are scrolled to be visible. |
static String |
SELECTION_MODEL_PROPERTY
Bound property name for selectionModel. |
protected TreeSelectionModel |
selectionModel
Models the set of selected nodes in this tree. |
protected JTree.TreeSelectionRedirector |
selectionRedirector
Creates a new event and passed it off the selectionListeners. |
static String |
SHOWS_ROOT_HANDLES_PROPERTY
Bound property name for showsRootHandles. |
protected boolean |
showsRootHandles
True if handles are displayed at the topmost level of the tree. |
static String |
TOGGLE_CLICK_COUNT_PROPERTY
Bound property name for toggleClickCount. |
protected int |
toggleClickCount
Number of mouse clicks before a node is expanded. |
static String |
TREE_MODEL_PROPERTY
Bound property name for treeModel. |
protected TreeModel |
treeModel
The model that defines the tree displayed by this object. |
protected TreeModelListener |
treeModelListener
Updates the expandedState. |
static String |
VISIBLE_ROW_COUNT_PROPERTY
Bound property name for visibleRowCount. |
protected int |
visibleRowCount
Number of rows to make visible at one time. |
| 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 java.awt.image.ImageObserver |
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
| Constructor Summary | |
JTree()
Returns a JTree with a sample model. |
|
JTree(Hashtable value)
Returns a JTree created from a Hashtable
which does not display with root. |
|
JTree(Object[] value)
Returns a JTree with each element of the
specified array as the
child of a new root node which is not displayed. |
|
JTree(TreeModel newModel)
Returns an instance of JTree which displays the root node
-- the tree is created using the specified data model. |
|
JTree(TreeNode root)
Returns a JTree with the specified
TreeNode as its root,
which displays the root node. |
|
JTree(TreeNode root,
boolean asksAllowsChildren)
Returns a JTree with the specified TreeNode
as its root, which
displays the root node and which decides whether a node is a
leaf node in the specified manner. |
|
JTree(Vector value)
Returns a JTree with each element of the specified
Vector as the
child of a new root node which is not displayed. |
|
| Method Summary | |
void |
addSelectionInterval(int index0,
int index1)
Adds the paths between index0 and index1, inclusive, to the selection. |
void |
addSelectionPath(TreePath path)
Adds the node identified by the specified TreePath
to the current selection. |
void |
addSelectionPaths(TreePath[] paths)
Adds each path in the array of paths to the current selection. |
void |
addSelectionRow(int row)
Adds the path at the specified row to the current selection. |
void |
addSelectionRows(int[] rows)
Adds the paths at each of the specified rows to the current selection. |
void |
addTreeExpansionListener(TreeExpansionListener tel)
Adds a listener for TreeExpansion events. |
void |
addTreeSelectionListener(TreeSelectionListener tsl)
Adds a listener for TreeSelection events. |
void |
addTreeWillExpandListener(TreeWillExpandListener tel)
Adds a listener for TreeWillExpand events. |
void |
cancelEditing()
Cancels the current editing session. |
void |
clearSelection()
Clears the selection. |
protected void |
clearToggledPaths()
Clears the cache of toggled tree paths. |
void |
collapsePath(TreePath path)
Ensures that the node identified by the specified path is collapsed and viewable. |
void |
collapseRow(int row)
Ensures that the node in the specified row is collapsed. |
String |
convertValueToText(Object value,
boolean selected,
boolean expanded,
boolean leaf,
int row,
boolean hasFocus)
Called by the renderers to convert the specified value to text. |
protected static TreeModel |
createTreeModel(Object value)
Returns a TreeModel wrapping the specified object. |
protected TreeModelListener |
createTreeModelListener()
Creates and returns an instance of TreeModelHandler. |
void |
expandPath(TreePath path)
Ensures that the node identified by the specified path is expanded and viewable. |
void |
expandRow(int row)
Ensures that the node in the specified row is expanded and viewable. |
void |
fireTreeCollapsed(TreePath path)
Notifies all listeners that have registered interest for notification on this event type. |
void |
fireTreeExpanded(TreePath path)
Notifies all listeners that have registered interest for notification on this event type. |
void |
fireTreeWillCollapse(TreePath path)
Notifies all listeners that have registered interest for notification on this event type. |
void |
fireTreeWillExpand(TreePath path)
Notifies all listeners that have registered interest for notification on this event type. |
protected void |
fireValueChanged(TreeSelectionEvent e)
Notifies all listeners that have registered interest for notification on this event type. |
AccessibleContext |
getAccessibleContext()
Gets the AccessibleContext associated with this JTree. |
TreePath |
getAnchorSelectionPath()
Returns the path identified as the anchor. |
TreeCellEditor |
getCellEditor()
Returns the editor used to edit entries in the tree. |
TreeCellRenderer |
getCellRenderer()
Returns the current TreeCellRenderer
that is rendering each cell. |
TreePath |
getClosestPathForLocation(int x,
int y)
Returns the path to the node that is closest to x,y. |
int |
getClosestRowForLocation(int x,
int y)
Returns the row to the node that is closest to x,y. |
protected static TreeModel |
getDefaultTreeModel()
Creates and returns a sample TreeModel. |
protected Enumeration |
getDescendantToggledPaths(TreePath parent)
Returns an Enumeration of TreePaths
that have been expanded that
are descendants of parent. |
boolean |
getDragEnabled()
Gets the value of the dragEnabled property. |
TreePath |
getEditingPath()
Returns the path to the element that is currently being edited. |
Enumeration |
getExpandedDescendants(TreePath parent)
Returns an Enumeration of the descendants of the
path parent that
are currently expanded. |
boolean |
getExpandsSelectedPaths()
Returns the expandsSelectedPaths property. |
boolean |
getInvokesStopCellEditing()
Returns the indicator that tells what happens when editing is interrupted. |
Object |
getLastSelectedPathComponent()
Returns the last path component in the first node of the current selection. |
TreePath |
getLeadSelectionPath()
Returns the path identified as the lead. |
int |
getLeadSelectionRow()
Returns the row index corresponding to the lead path. |
int |
getMaxSelectionRow()
Returns the last selected row. |
int |
getMinSelectionRow()
Gets the first selected row. |
TreeModel |
getModel()
Returns the TreeModel that is providing the data. |
TreePath |
getNextMatch(String prefix,
int startingRow,
Position.Bias bias)
Returns the TreePath to the next tree element that begins with a prefix. |
protected TreePath[] |
getPathBetweenRows(int index0,
int index1)
Returns JTreePath instances representing the path
between index0 and index1 (including index1). |
Rectangle |
getPathBounds(TreePath path)
Returns the Rectangle that the specified node will be drawn
into. |
TreePath |
getPathForLocation(int x,
int y)
Returns the path for the node at the specified location. |
TreePath |
getPathForRow(int row)
Returns the path for the specified row. |
Dimension |
getPreferredScrollableViewportSize()
Returns the preferred display size of a JTree. |
Rectangle |
getRowBounds(int row)
Returns the Rectangle that the node at the specified row is
drawn in. |
int |
getRowCount()
Returns the number of rows that are currently being displayed. |
int |
getRowForLocation(int x,
int y)
Returns the row for the specified location. |
int |
getRowForPath(TreePath path)
Returns the row that displays the node identified by the specified path. |
int |
getRowHeight()
Returns the height of each row. |
int |
getScrollableBlockIncrement(Rectangle visibleRect,
int orientation,
int direction)
Returns the amount for a block increment, which is the height or width of visibleRect, based on orientation. |
boolean |
getScrollableTracksViewportHeight()
Returns false to indicate that the height of the viewport does not determine the height of the table, unless the preferred height of the tree is smaller than the viewports height. |
boolean |
getScrollableTracksViewportWidth()
Returns false to indicate that the width of the viewport does not determine the width of the table, unless the preferred width of the tree is smaller than the viewports width. |
int |
getScrollableUnitIncrement(Rectangle visibleRect,
int orientation,
int direction)
Returns the amount to increment when scrolling. |
boolean |
getScrollsOnExpand()
Returns the value of the scrollsOnExpand property. |
int |
getSelectionCount()
Returns the number of nodes selected. |
TreeSelectionModel |
getSelectionModel()
Returns the model for selections. |
TreePath |
getSelectionPath()
Returns the path to the first selected node. |
TreePath[] |
getSelectionPaths()
Returns the paths of all selected values. |
int[] |
getSelectionRows()
Returns all of the currently selected rows. |
boolean |
getShowsRootHandles()
Returns the value of the showsRootHandles property. |
int |
getToggleClickCount()
Returns the number of mouse clicks needed to expand or close a node. |
String |
getToolTipText(MouseEvent event)
Overrides JComponent's getToolTipText
method in order to allow
renderer's tips to be used if it has text set. |
TreeExpansionListener[] |
getTreeExpansionListeners()
Returns an array of all the TreeExpansionListeners added
to this JTree with addTreeExpansionListener(). |
TreeSelectionListener[] |
getTreeSelectionListeners()
Returns an array of all the TreeSelectionListeners added
to this JTree with addTreeSelectionListener(). |
TreeWillExpandListener[] |
getTreeWillExpandListeners()
Returns an array of all the TreeWillExpandListeners added
to this JTree with addTreeWillExpandListener(). |
TreeUI |
getUI()
Returns the L&F object that renders this component. |
String |
getUIClassID()
Returns the name of the L&F class that renders this component. |
int |
getVisibleRowCount()
Returns the number of rows that are displayed in the display area. |
boolean |
hasBeenExpanded(TreePath path)
Returns true if the node identified by the path has ever been expanded. |
boolean |
isCollapsed(int row)
Returns true if the node at the specified display row is collapsed. |
boolean |
isCollapsed(TreePath path)
Returns true if the value identified by path is currently collapsed, this will return false if any of the values in path are currently not being displayed. |
boolean |
isEditable()
Returns true if the tree is editable. |
boolean |
isEditing()
Returns true if the tree is being edited. |
boolean |
isExpanded(int row)
Returns true if the node at the specified display row is currently expanded. |
boolean |
isExpanded(TreePath path)
Returns true if the node identified by the path is currently expanded, |
boolean |
isFixedRowHeight()
Returns true if the height of each display row is a fixed size. |
boolean |
isLargeModel()
Returns true if the tree is configured for a large model. |
boolean |
isPathEditable(TreePath path)
Returns isEditable. |
boolean |
isPathSelected(TreePath path)
Returns true if the item identified by the path is currently selected. |
boolean |
isRootVisible()
Returns true if the root node of the tree is displayed. |
boolean |
isRowSelected(int row)
Returns true if the node identified by row is selected. |
boolean |
isSelectionEmpty()
Returns true if the selection is currently empty. |
boolean |
isVisible(TreePath path)
Returns true if the value identified by path is currently viewable, which means it is either the root or all of its parents are expanded. |
void |
makeVisible(TreePath path)
Ensures that the node identified by path is currently viewable. |
protected String |
paramString()
Returns a string representation of this JTree. |
protected boolean |
removeDescendantSelectedPaths(TreePath path,
boolean includePath)
Removes any paths in the selection that are descendants of path. |
protected void |
removeDescendantToggledPaths(Enumeration toRemove)
Removes any descendants of the TreePaths in
toRemove
that have been expanded. |
void |
removeSelectionInterval(int index0,
int index1)
Removes the nodes between index0 and index1, inclusive, from the selection. |
void |
removeSelectionPath(TreePath path)
Removes the node identified by the specified path from the current selection. |
void |
removeSelectionPaths(TreePath[] paths)
Removes the nodes identified by the specified paths from the current selection. |
void |
removeSelectionRow(int row)
Removes the row at the index row from the current
selection. |
void |
removeSelectionRows(int[] rows)
Removes the rows that are selected at each of the specified rows. |
void |
removeTreeExpansionListener(TreeExpansionListener tel)
Removes a listener for TreeExpansion events. |
void |
removeTreeSelectionListener(TreeSelectionListener tsl)
Removes a TreeSelection listener. |
void |
removeTreeWillExpandListener(TreeWillExpandListener tel)
Removes a listener for TreeWillExpand events. |
void |
scrollPathToVisible(TreePath path)
Makes sure all the path components in path are expanded (except for the last path component) and scrolls so that the node identified by the path is displayed. |
void |
scrollRowToVisible(int row)
Scrolls the item identified by row until it is displayed. |
void |
setAnchorSelectionPath(TreePath newPath)
Sets the path identified as the anchor. |
void |
setCellEditor(TreeCellEditor cellEditor)
Sets the cell editor. |
void |
setCellRenderer(TreeCellRenderer x)
Sets the TreeCellRenderer that will be used to
draw each cell. |
void |
setDragEnabled(boolean b)
Sets the dragEnabled property,
which must be true to enable
automatic drag handling (the first part of drag and drop)
on this component. |
void |
setEditable(boolean flag)
Determines whether the tree is editable. |
protected void |
setExpandedState(TreePath path,
boolean state)
Sets the expanded state of this JTree. |
void |
setExpandsSelectedPaths(boolean newValue)
Configures the expandsSelectedPaths property. |
void |
setInvokesStopCellEditing(boolean newValue)
Determines what happens when editing is interrupted by selecting another node in the tree, a change in the tree's data, or by some other means. |
void |
setLargeModel(boolean newValue)
Specifies whether the UI should use a large model. |
void |
setLeadSelectionPath(TreePath newPath)
Sets the path identifies as the lead. |
void |
setModel(TreeModel newModel)
Sets the TreeModel that will provide the data. |
void |
setRootVisible(boolean rootVisible)
Determines whether or not the root node from the TreeModel is visible. |
void |
setRowHeight(int rowHeight)
Sets the height of each cell, in pixels. |
void |
setScrollsOnExpand(boolean newValue)
Sets the scrollsOnExpand property,
which determines whether the
tree might scroll to show previously hidden children. |
void |
setSelectionInterval(int index0,
int index1)
Selects the nodes between index0 and index1, inclusive. |
void |
setSelectionModel(TreeSelectionModel selectionModel)
Sets the tree's selection model. |
void |
setSelectionPath(TreePath path)
Selects the node identified by the specified path. |
void |
setSelectionPaths(TreePath[] paths)
Selects the nodes identified by the specified array of paths. |
void |
setSelectionRow(int row)
Selects the node at the specified row in the display. |
void |
setSelectionRows(int[] rows)
Selects the nodes corresponding to each of the specified rows in the display. |
void |
setShowsRootHandles(boolean newValue)
Sets the value of the showsRootHandles property,
which specifies whether the node handles should be displayed. |
void |
setToggleClickCount(int clickCount)
Sets the number of mouse clicks before a node will expand or close. |
void |
setUI(TreeUI ui)
Sets the L&F object that renders this component. |
void |
setVisibleRowCount(int newCount)
Sets the number of rows that are to be displayed. |
void |
startEditingAtPath(TreePath path)
Selects the node identified by the specified path and initiates editing. |
boolean |
stopEditing()
Ends the current editing session. |
void |
treeDidChange()
Sent when the tree has changed enough that we need to resize the bounds, but not enough that we need to remove the expanded node set (e.g nodes were expanded or collapsed, or nodes were inserted into the tree). |
void |
updateUI()
Notification from the UIManager that the L&F has changed. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
protected transient TreeModel treeModel