|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Object![]()
![]()
![]()
java.awt.Component
![]()
![]()
![]()
java.awt.Container
![]()
![]()
![]()
javax.swing.JComponent
![]()
![]()
![]()
javax.swing.JTree
, MenuContainer
, Serializable
, Accessible
, Scrollable

public class JTree

, Accessible

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.
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/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 |
| 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 |
Fields inherited from class java.awt.Component ![]() |
|---|
BOTTOM_ALIGNMENT |
Fields inherited from interface java.awt.image.ImageObserver ![]() |
|---|
ABORT |
| Constructor Summary | |
|---|---|
JTree
Returns a JTree with a sample model. |
|
JTree
Returns a JTree created from a Hashtable
which does not display with root. |
|
JTree
Returns a JTree with each element of the
specified array as the
child of a new root node which is not displayed. |
|
JTree
Returns an instance of JTree which displays the root node
-- the tree is created using the specified data model. |
|
JTree
Returns a JTree with the specified
TreeNode as its root,
which displays the root node. |
|
JTree
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
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
Adds the paths between index0 and index1, inclusive, to the selection. |
void |
addSelectionPath
Adds the node identified by the specified TreePath
to the current selection. |
void |
addSelectionPaths
Adds each path in the array of paths to the current selection. |
void |
addSelectionRow
Adds the path at the specified row to the current selection. |
void |
addSelectionRows
Adds the paths at each of the specified rows to the current selection. |
void |
addTreeExpansionListener
Adds a listener for TreeExpansion events. |
void |
addTreeSelectionListener
Adds a listener for TreeSelection events. |
void |
addTreeWillExpandListener
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
Ensures that the node identified by the specified path is collapsed and viewable. |
void |
collapseRow
Ensures that the node in the specified row is collapsed. |
String |
convertValueToText
Called by the renderers to convert the specified value to text. |
protected static TreeModel |
createTreeModel
Returns a TreeModel wrapping the specified object. |
protected TreeModelListener |
createTreeModelListener
Creates and returns an instance of TreeModelHandler. |
void |
expandPath
Ensures that the node identified by the specified path is expanded and viewable. |
void |
expandRow
Ensures that the node in the specified row is expanded and viewable. |
void |
fireTreeCollapsed |