JavaTM Platform
Standard Ed. 6

javax.swing
类 JTree

java.lang.Object
  继承者 java.awt.Component
      继承者 java.awt.Container
          继承者 javax.swing.JComponent
              继承者 javax.swing.JTree
所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

public class JTree
extends JComponent
implements Scrollable, Accessible

将分层数据集显示为轮廓的控件。有关面向任务的文档和使用树的示例,请参阅 The Java Tutorial 中的 How to Use Trees 一节。

树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识。展开 节点是一个非叶节点(由返回 false 的 TreeModel.isLeaf(node) 标识),当展开 其所有祖先时,该节点将显示其子节点。折叠 节点是隐藏它们的节点。隐藏 节点是位于折叠祖先下面的节点。所有可查看 节点的父节点都是可以展开的,但是可以显示它们,也可以不显示它们。显示 节点是可查看的并且位于可以看到它的显示区域。

以下 JTree 方法使用 "visible" 来表示 "displayed":

下一组 JTree 方法使用 "visible" 表示 "viewable"(在展开的父节点下面):

如果您有兴趣了解选择何时更改,请实现 TreeSelectionListener 接口,并使用方法 addTreeSelectionListener 添加实例。当选择更改时,将调用 valueChanged,即如果用户在同一节点上单击两次,则仅调用 valueChanged 一次。

如果有兴趣检测双击事件或用户何时单击节点(不管是否选中它),建议您执行以下操作:

 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);
 
注:上述示例同时获取路径和行,但是您只需要获取感兴趣的内容。

要使用 JTree 显示复合节点(例如,同时包含图形图标和文本的节点),请为 TreeCellRenderer 创建子类,并使用 setCellRenderer(javax.swing.tree.TreeCellRenderer) 通知树使用它。要编辑此类节点,请为 TreeCellEditor 创建子类,并使用 setCellEditor(javax.swing.tree.TreeCellEditor)

与所有 JComponent 类一样,可以使用 InputMapActionMapAction 对象与 KeyStroke 关联,并在指定条件下执行操作。

警告:Swing 不是线程安全的。有关更多信息,请参阅 Swing's Threading Policy

警告:此类的序列化对象与以后的 Swing 版本不兼容。当前序列化支持适用于短期存储,或适用于在运行相同 Swing 版本的应用程序之间进行 RMI(Remote Method Invocation,远程方法调用)。从 1.4 版本开始,已在 java.beans 包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder


嵌套类摘要
protected  class JTree.AccessibleJTree
          此类实现 JTree 类的可访问性支持。
static class JTree.DropLocation
          TransferHandler.DropLocation 的一个子类,表示 JTree 的放置位置 (drop location)。
static class JTree.DynamicUtilTreeNode
          DynamicUtilTreeNode 可以包装 vectors/hashtables/arrays/strings 并根据需要创建适当的子树节点。
protected static class JTree.EmptySelectionModel
          EmptySelectionModel 是一个不允许选择任何内容的 TreeSelectionModel
protected  class JTree.TreeModelHandler
          在移除或更改节点时,监听模型并相应地更新 expandedState
protected  class JTree.TreeSelectionRedirector
          使用 JTree 创建一个作为源的新 TreeSelectionEvent 并将其传递到所有侦听器的句柄。
 
从类 javax.swing.JComponent 继承的嵌套类/接口
JComponent.AccessibleJComponent
 
从类 java.awt.Container 继承的嵌套类/接口
Container.AccessibleAWTContainer
 
从类 java.awt.Component 继承的嵌套类/接口
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
字段摘要
static String ANCHOR_SELECTION_PATH_PROPERTY
          定位选择路径的绑定属性名称。
static String CELL_EDITOR_PROPERTY
          cellEditor 的绑定属性名称。
static String CELL_RENDERER_PROPERTY
          cellRenderer 的绑定属性名称。
protected  TreeCellEditor cellEditor
          条目编辑器。
protected  TreeCellRenderer cellRenderer
          用于绘制节点的单元格。
protected  boolean editable
          树是否可以编辑?默认值为 false。
static String EDITABLE_PROPERTY
          editable 的绑定属性名称。
static String EXPANDS_SELECTED_PATHS_PROPERTY
          展开选择路径属性的绑定属性名称
static String INVOKES_STOP_CELL_EDITING_PROPERTY
          messagesStopCellEditing 的绑定属性名称。
protected  boolean invokesStopCellEditing
          如果为 true,则在通过更改选择、更改树中的数据或通过其他方法停止编辑时,会调用 stopCellEditing,并保存更改。
static String LARGE_MODEL_PROPERTY
          largeModel 的绑定属性名称。
protected  boolean largeModel
          此树是否为大模型?这是一种代码优化设置。
static String LEAD_SELECTION_PATH_PROPERTY
          leadSelectionPath 的绑定属性名称。
static String ROOT_VISIBLE_PROPERTY
          rootVisible 的绑定属性名称。
protected  boolean rootVisible
          如果显示根节点,则为 true;如果其子节点为最高可见节点,则为 false。
static String ROW_HEIGHT_PROPERTY
          rowHeight 的绑定属性名称。
protected  int rowHeight
          用于每个显示行的高度。
static String SCROLLS_ON_EXPAND_PROPERTY
          scrollsOnExpand 的绑定属性名称。
protected  boolean scrollsOnExpand
          如果为 true,则当展开节点时,将滚动尽可能多的子节点,以便看到它们。
static String SELECTION_MODEL_PROPERTY
          selectionModel 的绑定属性名称。
protected  TreeSelectionModel selectionModel
          对此树中选择的节点集建模。
protected  JTree.TreeSelectionRedirector selectionRedirector
          创建一个新事件,并将它传递给 selectionListeners
static String SHOWS_ROOT_HANDLES_PROPERTY
          showsRootHandles 的绑定属性名称。
protected  boolean showsRootHandles
          如果在树的最高层显示句柄,则为 True。
static String TOGGLE_CLICK_COUNT_PROPERTY
          toggleClickCount 的绑定属性名称。
protected  int toggleClickCount
          展开节点之前的鼠标单击数。
static String TREE_MODEL_PROPERTY
          treeModel 的绑定属性名称。
protected  TreeModel treeModel
          定义此对象显示的树的模型。
protected  TreeModelListener treeModelListener
          更新 expandedState
static String VISIBLE_ROW_COUNT_PROPERTY
          visibleRowCount 的绑定属性名称。
protected  int visibleRowCount
          一次可见的行数。
 
从类 javax.swing.JComponent 继承的字段
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
从类 java.awt.Component 继承的字段
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
从接口 java.awt.image.ImageObserver 继承的字段
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
构造方法摘要
JTree()
          返回带有示例模型的 JTree
JTree(Hashtable<?,?> value)
          返回从 Hashtable 创建的 JTree,它不显示根。
JTree(Object[] value)
          返回 JTree,指定数组的每个元素作为不被显示的新根节点的子节点。
JTree(TreeModel newModel)
          返回 JTree 的一个实例,它显示根节点 - 使用指定的数据模型创建树。
JTree(TreeNode root)
          返回 JTree,指定的 TreeNode 作为其根,它显示根节点。
JTree(TreeNode root, boolean asksAllowsChildren)
          返回 JTree,指定的 TreeNode 作为其根,它用指定的方式显示根节点,并确定节点是否为叶节点。
JTree(Vector<?> value)
          返回 JTree,指定 Vector 的每个元素作为不被显示的新根节点的子节点。
 
方法摘要
 void addSelectionInterval(int index0, int index1)
          将 index0 和 index1(包含)之间的路径添加到该选择。
 void addSelectionPath(TreePath path)
          将由指定的 TreePath 标识的节点添加到当前选择。
 void addSelectionPaths(TreePath[] paths)
          将路径数组中的每个路径添加到当前选择。
 void addSelectionRow(int row)
          将指定行处的路径添加到当前选择。
 void addSelectionRows(int[] rows)
          将每个指定行处的路径添加到当前选择。
 void addTreeExpansionListener(TreeExpansionListener tel)
          为 TreeExpansion 事件添加侦听器。
 void addTreeSelectionListener(TreeSelectionListener tsl)
          为 TreeSelection 事件添加侦听器。
 void addTreeWillExpandListener(TreeWillExpandListener tel)
          为 TreeWillExpand 事件添加侦听器。
 void cancelEditing()
          取消当前编辑会话。
 void clearSelection()
          清除该选择。
protected  void clearToggledPaths()
          清除切换的树路径的缓存。
 void collapsePath(TreePath path)
          确保指定路径标识的节点是折叠的,并且可查看。
 void collapseRow(int row)
          确保指定行中的节点是折叠的。
 String convertValueToText(Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
          通过渲染器调用以将指定值转换为文本。
protected static TreeModel createTreeModel(Object value)
          返回一个 TreeModel,它包装指定的对象。
protected  TreeModelListener createTreeModelListener()
          创建并返回 TreeModelHandler 的一个实例。
 void expandPath(TreePath path)
          确保指定路径标识的节点展开,并且可查看。
 void expandRow(int row)
          确保指定行中的节点展开,并且可查看。
 void fireTreeCollapsed(TreePath path)
          通知已注册对获得此事件类型通知感兴趣的所有侦听器。
 void fireTreeExpanded(TreePath path)
          通知已注册对获得此事件类型通知感兴趣的所有侦听器。
 void fireTreeWillCollapse(TreePath path)
          通知已注册对获得此事件类型通知感兴趣的所有侦听器。
 void fireTreeWillExpand(TreePath path)
          通知已注册对获得此事件类型通知感兴趣的所有侦听器。
protected  void fireValueChanged(TreeSelectionEvent e)
          通知已注册对获得此事件类型通知感兴趣的所有侦听器。
 AccessibleContext getAccessibleContext()
          获取与此 JTree 关联的 AccessibleContext。
 TreePath getAnchorSelectionPath()
          返回标识为定位的路径。
 TreeCellEditor getCellEditor()
          返回用于编辑树中条目的编辑器。
 TreeCellRenderer getCellRenderer()
          返回正在呈现每个单元格的当前 TreeCellRenderer
 TreePath getClosestPathForLocation(int x, int y)
          返回离 x,y 最近的节点的路径。
 int getClosestRowForLocation(int x, int y)
          返回离 x,y 最近的节点的行。
protected static TreeModel getDefaultTreeModel()
          创建并返回一个示例 TreeModel
protected  Enumeration<TreePath> getDescendantToggledPaths(TreePath parent)
          返回已展开且为 parent 的子路径的 TreePathEnumeration
 boolean getDragEnabled()
          返回是否启用自动拖动处理。
 JTree.DropLocation getDropLocation()
          返回该组件上 DnD 操作期间此组件应该视觉上指示为放置操作的位置;如果当前未显示任何位置,则返回 null
 DropMode getDropMode()
          返回此组件的放置模式。
 TreePath getEditingPath()
          返回当前正在编辑的元素的路径。
 Enumeration<TreePath> getExpandedDescendants(TreePath parent)
          返回当前展开的 parent 路径的子路径的 Enumeration
 boolean getExpandsSelectedPaths()
          返回 expandsSelectedPaths 属性。
 boolean getInvokesStopCellEditing()
          返回告知编辑中断时发生了什么情况的指示符。
 Object getLastSelectedPathComponent()
          返回当前选择的第一个节点中的最后一个路径组件。
 TreePath getLeadSelectionPath()
          返回标识为前导的路径。
 int getLeadSelectionRow()
          返回与前导路径对应的行索引。
 int getMaxSelectionRow()
          返回选择的最后一行。
 int getMinSelectionRow()
          获取选择的第一行。
 TreeModel getModel()
          返回正在提供数据的 TreeModel
 TreePath getNextMatch(String prefix, int startingRow, Position.Bias bias)
          将 TreePath 返回到以一个前缀开头的下一个树元素。
protected  TreePath[] getPathBetweenRows(int index0, int index1)
          返回 JTreePath 实例,它表示 index0 和 index1(包括 index1)之间的路径。
 Rectangle getPathBounds(TreePath path)
          返回将指定节点绘入的 Rectangle
 TreePath getPathForLocation(int x, int y)
          返回指定位置处的节点路径。
 TreePath getPathForRow(int row)
          返回指定行的路径。
 Dimension getPreferredScrollableViewportSize()
          返回 JTree 的首选显示大小。
 Rectangle getRowBounds(int row)
          返回将指定行处的节点绘入的 Rectangle
 int getRowCount()
          返回当前正在显示的行数。
 int getRowForLocation(int x, int y)
          返回指定位置的行。
 int getRowForPath(TreePath path)
          返回显示由指定路径标识的节点的行。
 int getRowHeight()
          返回每个行的高度。
 int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
          返回块增量的数量,它是基于 orientationvisibleRect 高度或宽度。
 boolean getScrollableTracksViewportHeight()
          返回 false 指示视口的高度不能确定表的高度,除非树的首选高度小于视口高度。
 boolean getScrollableTracksViewportWidth()
          返回 false 指示视口的宽度不能确定表的宽度,除非树的首选宽度小于视口宽度。
 int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
          返回滚动时增加的数量。
 boolean getScrollsOnExpand()
          返回 scrollsOnExpand 属性的值。
 int getSelectionCount()
          返回选择的节点数。
 TreeSelectionModel getSelectionModel()
          返回选择的模型。
 TreePath getSelectionPath()
          返回首选节点的路径。
 TreePath[] getSelectionPaths()
          返回所有选择值的路径。
 int[] getSelectionRows()
          返回所有当前选择的行。
 boolean getShowsRootHandles()
          返回 showsRootHandles 属性的值。
 int getToggleClickCount()
          返回展开或关闭节点所需的鼠标单击数。
 String getToolTipText(MouseEvent event)
          重写 JComponentgetToolTipText 方法,以允许使用渲染器的提示(如果渲染器设置了文本)。
 TreeExpansionListener[] getTreeExpansionListeners()
          返回使用 addTreeExpansionListener() 添加到此 JTree 的所有 TreeExpansionListener 的数组。
 TreeSelectionListener[] getTreeSelectionListeners()
          返回使用 addTreeSelectionListener() 添加到此 JTree 的所有 TreeSelectionListener 的数组。
 TreeWillExpandListener[] getTreeWillExpandListeners()
          返回使用 addTreeWillExpandListener() 添加到此 JTree 的所有 TreeWillExpandListener 的数组。
 TreeUI getUI()
          返回呈现此组件的 L&F 对象。
 String getUIClassID()
          返回呈现此组件的 L&F 类的名称。
 int getVisibleRowCount()
          返回显示区域中显示的行数。
 boolean hasBeenExpanded(TreePath path)
          如果已经展开路径标识的节点,则返回 true。
 boolean isCollapsed(int row)
          如果折叠了指定显示行处的节点,则返回 true。
 boolean isCollapsed(TreePath path)
          如果当前折叠了路径标识的值,则返回 true,如果当前未显示路径中的任何值,则返回 false。
 boolean isEditable()
          如果树可编辑,则返回 true。
 boolean isEditing()
          如果正在编辑树,则返回 true。
 boolean isExpanded(int row)
          如果当前展开了指定显示行处的节点,则返回 true。
 boolean isExpanded(TreePath path)
          如果当前展开了路径标识的节点,则返回 true。
 boolean isFixedRowHeight()
          如果每个显示行的高度为固定大小,则返回 true。
 boolean isLargeModel()
          如果将树配置为大模型,则返回 true。
 boolean isPathEditable(TreePath path)
          返回 isEditable
 boolean isPathSelected(TreePath path)
          如果当前选择了路径标识的条目,则返回 true。
 boolean isRootVisible()
          如果显示树的根节点,则返回 true。
 boolean isRowSelected(int row)
          如果选择了行标识的节点,则返回 true。
 boolean isSelectionEmpty()
          如果该选择当前为空,则返回 true。
 boolean isVisible(TreePath path)
          如果当前可查看路径标识的值,则返回 true,这意味着该路径或者是根路径,或者它的所有父路径均被展开。
 void makeVisible(TreePath path)
          确保路径标识的节点当前可查看。
protected  String paramString()
          返回此 JTree 的字符串表示形式。
protected  boolean removeDescendantSelectedPaths(TreePath path, boolean includePath)
          移除选择中的任何路径(path 的子路径)。
protected  void removeDescendantToggledPaths(Enumeration<TreePath> toRemove)
          移除已展开的 toRemoveTreePath 的所有子路径。
 void removeSelectionInterval(int index0, int index1)
          从该选择中移除 index0 和 index1(包含)之间的节点。
 void removeSelectionPath(TreePath path)
          从当前选择中移除指定路径标识的节点。
 void removeSelectionPaths(TreePath[] paths)
          从当前选择移除指定路径标识的节点。
 void removeSelectionRow(int row)
          从当前选择移除索引 row 处的行。
 void removeSelectionRows(int[] rows)
          移除在每个指定行处选择的行。
 void removeTreeExpansionListener(TreeExpansionListener tel)
          移除 TreeExpansion 事件的侦听器。
 void removeTreeSelectionListener(TreeSelectionListener tsl)
          移除 TreeSelection 侦听器。
 void removeTreeWillExpandListener(TreeWillExpandListener tel)
          移除 TreeWillExpand 事件的侦听器。
 void scrollPathToVisible(TreePath path)
          确保路径中所有的路径组件均展开(最后一个路径组件除外)并滚动,以便显示该路径标识的节点。
 void scrollRowToVisible(int row)
          滚动行标识的条目,直到显示出来。
 void setAnchorSelectionPath(TreePath newPath)
          将标识的路径设置为定位路径。
 void setCellEditor(TreeCellEditor cellEditor)
          设置单元格编辑器。
 void setCellRenderer(TreeCellRenderer x)
          设置将用于绘制每个单元格的 TreeCellRenderer
 void setDragEnabled(boolean b)
          打开或关闭自动拖动处理。
 void setDropMode(DropMode dropMode)
          设置此组件的放置模式。
 void setEditable(boolean flag)
          确定树是否可编辑。
protected  void setExpandedState(TreePath path, boolean state)
          设置此 JTree 的展开状态。
 void setExpandsSelectedPaths(boolean newValue)
          配置 expandsSelectedPaths 属性。
 void setInvokesStopCellEditing(boolean newValue)
          通过选择树中的另一个节点、树的数据中的更改或通过其他方法来确定编辑被中断时发生了什么情况。
 void setLargeModel(boolean newValue)
          指定 UI 是否使用大模型。
 void setLeadSelectionPath(TreePath newPath)
          将标识的路径设置为前导路径。
 void setModel(TreeModel newModel)
          设置将提供数据的 TreeModel
 void setRootVisible(boolean rootVisible)
          确定 TreeModel 的根节点是否可见。
 void setRowHeight(int rowHeight)
          设置每个单元格的高度(以像素为单位)。
 void setScrollsOnExpand(boolean newValue)
          设置 scrollsOnExpand 属性,它确定树是否可以滚动显示以前隐藏的子节点。
 void setSelectionInterval(int index0, int index1)
          选择 index0 和 index1(包含)之间的节点。
 void setSelectionModel(TreeSelectionModel selectionModel)
          设置树的选择模型。
 void setSelectionPath(TreePath path)
          选择指定路径标识的节点。
 void setSelectionPaths(TreePath[] paths)
          选择由指定的路径数组标识的节点。
 void setSelectionRow(int row)
          选择显示的指定行的节点。
 void setSelectionRows(int[] rows)
          选择与显示的每个指定行对应的节点。
 void setShowsRootHandles(boolean newValue)
          设置 showsRootHandles 属性的值,它指定是否应显示节点句柄。
 void setToggleClickCount(int clickCount)
          设置节点展开或关闭之前鼠标的单击数。
 void setUI(TreeUI ui)
          设置呈现此组件的 L&F 对象。
 void setVisibleRowCount(int newCount)
          设置要显示的行数。
 void startEditingAtPath(TreePath path)
          选择指定路径标识的节点,并开始编辑。
 boolean stopEditing()
          结束当前编辑会话。
 void treeDidChange()
          当树被更改得足以需要调整边界大小,但还不足以需要移除展开的节点集(例如,展开或折叠节点,或者将节点插入到树)时发送。
 void updateUI()
          UIManager 发出的关于 L&F 已经更改的通知。
 
从类 javax.swing.JComponent 继承的方法
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, 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, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
从类 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, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
从类 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, 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, handleEvent, hasFocus, hide, imageUpdate, 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, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

treeModel

protected transient TreeModel treeModel
定义此对象显示的树的模型。


selectionModel

protected transient TreeSelectionModel selectionModel
对此树中选择的节点集建模。


rootVisible

protected boolean rootVisible
如果显示根节点,则为 true;如果其子节点为最高可见节点,则为 false。


cellRenderer

protected transient TreeCellRenderer cellRenderer
用于绘制节点的单元格。如果为 null,则 UI 使用默认 cellRenderer


rowHeight

protected int rowHeight
用于每个显示行的高度。如果此高度 <= 0,则渲染器为每个行确定高度。


showsRootHandles

protected boolean showsRootHandles
如果在树的最高层显示句柄,则为 True。

句柄是一个小图标,它显示在节点旁边,用户可以单击一次此图标来展开或折叠该节点。公共接口为可以展开的节点显示加号 (+),为可以折叠的节点显示减号 (-)。节点的句柄始终显示在最高层下面。

如果 rootVisible 设置指定将显示根节点,那么该根节点是位于最高层的惟一节点。如果不显示根节点,那么其所有的子节点都位于树的最高层。始终显示节点的句柄,但最高层节点除外。

如果根节点不可见,那么通常最好的方法是将此值设为 true。否则,树看起来很像一个列表,用户可能不知道“列表条目”实际上就是树节点。

另请参见:
rootVisible

selectionRedirector

protected transient JTree.TreeSelectionRedirector selectionRedirector
创建一个新事件,并将它传递给 selectionListeners


cellEditor

protected transient TreeCellEditor cellEditor
条目编辑器。默认值为 null(树不可编辑)。


editable

protected boolean editable
树是否可以编辑?默认值为 false。


largeModel

protected boolean largeModel
此树是否为大模型?这是一种代码优化设置。当单元格高度对于所有节点都相同时,可以使用大模型。然后,UI 将缓存非常少的信息,并改为继续向模型发送消息。在没有大模型的情况下,UI 缓存大部分信息,从而使该模型的方法调用更少。

此值仅为 UI 的一个建议值。并不是所有的 UI 都将利用它。默认值为 false。


visibleRowCount

protected int visibleRowCount
一次可见的行数。此值用于 Scrollable 接口。它可以确定显示区域的首选大小。


invokesStopCellEditing

protected boolean invokesStopCellEditing
如果为 true,则在通过更改选择、更改树中的数据或通过其他方法停止编辑时,会调用 stopCellEditing,并保存更改。如果为 false,则调用 cancelCellEditing,并丢弃更改。默认值为 false。


scrollsOnExpand

protected boolean scrollsOnExpand
如果为 true,则当展开节点时,将滚动尽可能多的子节点,以便看到它们。


toggleClickCount

protected int toggleClickCount
展开节点之前的鼠标单击数。


treeModelListener

protected transient TreeModelListener treeModelListener
更新 expandedState


CELL_RENDERER_PROPERTY

public static final String CELL_RENDERER_PROPERTY
cellRenderer 的绑定属性名称。

另请参见:
常量字段值

TREE_MODEL_PROPERTY

public static final String TREE_MODEL_PROPERTY
treeModel 的绑定属性名称。

另请参见:
常量字段值

ROOT_VISIBLE_PROPERTY

public static final String ROOT_VISIBLE_PROPERTY
rootVisible 的绑定属性名称。

另请参见:
常量字段值

SHOWS_ROOT_HANDLES_PROPERTY

public static final String SHOWS_ROOT_HANDLES_PROPERTY
showsRootHandles 的绑定属性名称。

另请参见:
常量字段值

ROW_HEIGHT_PROPERTY

public static final String ROW_HEIGHT_PROPERTY
rowHeight 的绑定属性名称。

另请参见:
常量字段值

CELL_EDITOR_PROPERTY

public static final String CELL_EDITOR_PROPERTY
cellEditor 的绑定属性名称。

另请参见:
常量字段值

EDITABLE_PROPERTY

public static final String EDITABLE_PROPERTY
editable 的绑定属性名称。

另请参见:
常量字段值

LARGE_MODEL_PROPERTY

public static final String LARGE_MODEL_PROPERTY
largeModel 的绑定属性名称。

另请参见:
常量字段值

SELECTION_MODEL_PROPERTY

public static final String SELECTION_MODEL_PROPERTY
selectionModel 的绑定属性名称。

另请参见:
常量字段值

VISIBLE_ROW_COUNT_PROPERTY

public static final String VISIBLE_ROW_COUNT_PROPERTY
visibleRowCount 的绑定属性名称。

另请参见:
常量字段值

INVOKES_STOP_CELL_EDITING_PROPERTY

public static final String INVOKES_STOP_CELL_EDITING_PROPERTY
messagesStopCellEditing 的绑定属性名称。

另请参见:
常量字段值

SCROLLS_ON_EXPAND_PROPERTY

public static final String SCROLLS_ON_EXPAND_PROPERTY
scrollsOnExpand 的绑定属性名称。

另请参见:
常量字段值

TOGGLE_CLICK_COUNT_PROPERTY

public static final String TOGGLE_CLICK_COUNT_PROPERTY
toggleClickCount 的绑定属性名称。

另请参见:
常量字段值

LEAD_SELECTION_PATH_PROPERTY

public static final String LEAD_SELECTION_PATH_PROPERTY
leadSelectionPath 的绑定属性名称。

从以下版本开始:
1.3
另请参见:
常量字段值

ANCHOR_SELECTION_PATH_PROPERTY

public static final String ANCHOR_SELECTION_PATH_PROPERTY
定位选择路径的绑定属性名称。

从以下版本开始:
1.3
另请参见:
常量字段值

EXPANDS_SELECTED_PATHS_PROPERTY

public static final String EXPANDS_SELECTED_PATHS_PROPERTY
展开选择路径属性的绑定属性名称

从以下版本开始:
1.3
另请参见:
常量字段值
构造方法详细信息

JTree

public JTree()
返回带有示例模型的 JTree。树使用的默认模型可以将叶节点定义为不带子节点的任何节点。

另请参见:
DefaultTreeModel.asksAllowsChildren

JTree

public JTree(Object[] value)
返回 JTree,指定数组的每个元素作为不被显示的新根节点的子节点。默认情况下,树可以将叶节点定义为不带子节点的任何节点。

参数:
value - Object 的数组
另请参见:
DefaultTreeModel.asksAllowsChildren

JTree

public JTree(Vector<?> value)
返回 JTree,指定 Vector 的每个元素作为不被显示的新根节点的子节点。默认情况下,树可以将叶节点定义为不带子节点的任何节点。

参数:
value - 一个 Vector
另请参见:
DefaultTreeModel.asksAllowsChildren

JTree

public JTree(Hashtable<?,?> value)
返回从 Hashtable 创建的 JTree,它不显示根。HashTable 中每个键/值对的半值都成为新根节点的子节点。默认情况下,树可以将叶节点定义为不带子节点的任何节点。

参数:
value - 一个 Hashtable
另请参见:
DefaultTreeModel.asksAllowsChildren

JTree

public JTree(TreeNode root)
返回 JTree,指定的 TreeNode 作为其根,它显示根节点。默认情况下,树可以将叶节点定义为不带子节点的任何节点。

参数:
root - 一个 TreeNode 对象
另请参见:
DefaultTreeModel.asksAllowsChildren

JTree

public JTree(TreeNode root,
             boolean asksAllowsChildren)
返回 JTree,指定的 TreeNode 作为其根,它用指定的方式显示根节点,并确定节点是否为叶节点。

参数:
root - 一个 TreeNode 对象
asksAllowsChildren - 如果为 false,则不带子节点的任何节点都是叶节点;如果为 true,则只有不允许带子节点的节点是叶节点
另请参见:
DefaultTreeModel.asksAllowsChildren

JTree

public JTree(TreeModel newModel)
返回 JTree 的一个实例,它显示根节点 - 使用指定的数据模型创建树。

参数:
newModel - 用作数据模型的 TreeModel
方法详细信息

getDefaultTreeModel

protected static TreeModel getDefaultTreeModel()
创建并返回一个示例 TreeModel。主要用于 bean 生成器,来显示一些有趣的东西。

返回:
默认 TreeModel

createTreeModel

protected static TreeModel createTreeModel(Object value)
返回一个 TreeModel,它包装指定的对象。如果该对象为:则创建新的根节点,将传入的每个对象作为子节点。否则,创建新的根,将指定的对象作为其值。

参数:
value - 用作 TreeModel 的基础的 Object
返回:
包装指定对象的 TreeModel

getUI

public TreeUI getUI()
返回呈现此组件的 L&F 对象。

返回:
呈现此组件的 TreeUI 对象

setUI

public void setUI(TreeUI ui)
设置呈现此组件的 L&F 对象。

参数:
ui - TreeUI L&F 对象
另请参见:
UIDefaults.getUI(javax.swing.JComponent)

updateUI

public void updateUI()
UIManager 发出的关于 L&F 已经更改的通知。用 UIManager 的最新版本替换当前的 UI 对象。

覆盖:
JComponent 中的 updateUI
另请参见:
JComponent.updateUI()

getUIClassID

public String getUIClassID()
返回呈现此组件的 L&F 类的名称。

覆盖:
JComponent 中的 getUIClassID
返回:
字符串“TreeUI”
另请参见:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

getCellRenderer

public TreeCellRenderer getCellRenderer()
返回正在呈现每个单元格的当前 TreeCellRenderer

返回:
正在呈现每个单元格的 TreeCellRenderer

setCellRenderer

public void setCellRenderer(TreeCellRenderer x)
设置将用于绘制每个单元格的 TreeCellRenderer

参数:
x - 将呈现每个单元格的 TreeCellRenderer

setEditable

public void setEditable(boolean flag)
确定树是否可编辑。如果新设置与现有设置不同,则激发属性更改事件。

参数:
flag - boolean 值,如果树可编辑,则为 true

isEditable

public boolean isEditable()
如果树可编辑,则返回 true。

返回:
如果树可编辑,则返回 true

setCellEditor

public void setCellEditor(TreeCellEditor cellEditor)
设置单元格编辑器。null 值表示树无法编辑。如果这表示 cellEditor 中的一个更改,则在所有侦听器上调用 propertyChange 方法。

参数:
cellEditor - 要使用的 TreeCellEditor

getCellEditor

public TreeCellEditor getCellEditor()
返回用于编辑树中条目的编辑器。

返回:
使用中的 TreeCellEditor,如果树无法编辑,则返回 null

getModel

public TreeModel getModel()
返回正在提供数据的 TreeModel

返回:
正在提供数据的 TreeModel

setModel

public void setModel(TreeModel newModel)
设置将提供数据的 TreeModel

参数:
newModel - 将提供数据的 TreeModel

isRootVisible

public boolean isRootVisible()
如果显示树的根节点,则返回 true。

返回:
如果显示树的根节点,则返回 true
另请参见:
rootVisible

setRootVisible

public void setRootVisible(boolean rootVisible)
确定 TreeModel 的根节点是否可见。

参数:
rootVisible - 如果将显示树的根节点,则为 true
另请参见:
rootVisible

setShowsRootHandles

public void setShowsRootHandles(boolean newValue)
设置 showsRootHandles 属性的值,它指定是否应显示节点句柄。此属性的默认值取决于用于创建 JTree 的构造方法。某些外观可能不支持句柄;它们将忽略此属性。

参数:
newValue - 如果显示根句柄,则为 true;否则为 false
另请参见:
showsRootHandles, getShowsRootHandles()

getShowsRootHandles

public boolean getShowsRootHandles()
返回 showsRootHandles 属性的值。

返回:
showsRootHandles 属性的值
另请参见:
showsRootHandles

setRowHeight

public void setRowHeight(int rowHeight)
设置每个单元格的高度(以像素为单位)。如果指定的值小于或等于 0,则会查询当前单元格渲染器以获取每个行的高度。

参数:
rowHeight - 每个单元格的高度(以像素为单位)

getRowHeight

public int getRowHeight()
返回每个行的高度。如果返回的值小于或等于 0,则每个行的高度由渲染器确定。


isFixedRowHeight

public boolean isFixedRowHeight()
如果每个显示行的高度为固定大小,则返回 true。

返回:
如果每行的高度为固定大小,则返回 true

setLargeModel

public void setLargeModel(boolean newValue)
指定 UI 是否使用大模型。(并不是所有的 UI 都可以实现这一点。)激发 LARGE_MODEL_PROPERTY 的属性更改。

参数:
newValue - 如果 UI 使用大模型,则为 true
另请参见:
largeModel

isLargeModel

public boolean isLargeModel()
如果将树配置为大模型,则返回 true。

返回:
如果建议使用大模型,则返回 true
另请参见:
largeModel

setInvokesStopCellEditing

public void setInvokesStopCellEditing(boolean newValue)
通过选择树中的另一个节点、树的数据中的更改或通过其他方法来确定编辑被中断时发生了什么情况。将此属性设置为 true 可导致在编辑被中断时自动保存更改。

激发 INVOKES_STOP_CELL_EDITING_PROPERTY 的属性更改。

参数:
newValue - true 意味着当编辑中断时,调用 stopCellEditing,并保存数据;false 意味着调用 cancelCellEditing,并丢失更改

getInvokesStopCellEditing

public boolean getInvokesStopCellEditing()
返回告知编辑中断时发生了什么情况的指示符。

返回:
告知编辑中断时发生了什么情况的指示符
另请参见:
setInvokesStopCellEditing(boolean)

setScrollsOnExpand

public void setScrollsOnExpand(boolean newValue)
设置 scrollsOnExpand 属性,它确定树是否可以滚动显示以前隐藏的子节点。如果此属性为 true(默认值),则当节点展开时,树可以使用滚动来显示该节点的尽可能多的子节点。某些外观中,树在展开时可能不需要滚动;这些外观会忽略此属性。

参数:
newValue - false 表示展开时禁用滚动;true 表示启用滚动
另请参见:
getScrollsOnExpand()

getScrollsOnExpand

public boolean getScrollsOnExpand()
返回 scrollsOnExpand 属性的值。

返回:
scrollsOnExpand 属性的值

setToggleClickCount

public void setToggleClickCount(int clickCount)
设置节点展开或关闭之前鼠标的单击数。默认值为两次。

从以下版本开始:
1.3

getToggleClickCount

public int getToggleClickCount()
返回展开或关闭节点所需的鼠标单击数。

返回:
节点展开之前的鼠标单击数
从以下版本开始:
1.3

setExpandsSelectedPaths

public void setExpandsSelectedPaths(boolean newValue)
配置 expandsSelectedPaths 属性。如果为 true,则在任何时候通过 TreeSelectionModelJTree 提供的覆盖方法更改选择时,将展开 TreePath 的父路径,使它们可见(可见是指父路径不一定在 JTree 的可见矩形内展开)。如果为 false,当选择更改时,节点的父节点不可见(展开的所有父节点)。如果希望使您的选择模型维持并不总是可见的路径(展开的所有父路径),那么这一点非常有用。

参数:
newValue - expandsSelectedPaths 的新值
从以下版本开始:
1.3

getExpandsSelectedPaths

public boolean getExpandsSelectedPaths()
返回 expandsSelectedPaths 属性。

返回:
如果选择更改导致父路径展开,则返回 true
从以下版本开始:
1.3
另请参见:
setExpandsSelectedPaths(boolean)

setDragEnabled

public void setDragEnabled(boolean b)
打开或关闭自动拖动处理。要启用自动拖动处理,应将此属性设置为 true,并且树的 TransferHandler 必须为非 nulldragEnabled 属性的默认值为 false

遵守此属性以及识别用户拖动动作的工作取决于外观实现,尤其是树的 TreeUI。启用自动拖动处理时,只要用户在项上按下鼠标按钮,并将鼠标移动几个像素,大多数外观(包括为 BasicLookAndFeel 创建子类的外观)就会开始拖放操作。因此,将此属性设置为 true 可以对选择行为产生微妙的影响。

如果使用忽略此属性的外观,仍然可以通过在树的 TransferHandler 上调用 exportAsDrag 来开始拖放操作。

参数:
b - 是否启用自动拖动处理
抛出:
HeadlessException - 如果 btrue,并且 GraphicsEnvironment.isHeadless() 返回 true
从以下版本开始:
1.4
另请参见:
GraphicsEnvironment.isHeadless(), getDragEnabled(), JComponent.setTransferHandler(javax.swing.TransferHandler), TransferHandler

getDragEnabled

public boolean getDragEnabled()
返回是否启用自动拖动处理。

返回:
dragEnabled 属性的值
从以下版本开始:
1.4
另请参见:
setDragEnabled(boolean)

setDropMode

public final void setDropMode(DropMode dropMode)
设置此组件的放置模式。为了向后兼容性,此属性的默认值为 DropMode.USE_SELECTION。但是,为了用户使用更方便,建议使用其他模式中的某个模式。例如,DropMode.ON 提供与选择类似的显示项的行为,但执行此操作不会影响树中的实际选择。

JTree 支持以下放置模式:

只有此组件具有接受放置操作的 TransferHandler 时,该放置模式才是有意义的。

参数:
dropMode - 要使用的放置模式
抛出:
IllegalArgumentException - 如果放置模式不受支持或为 null
从以下版本开始:
1.6
另请参见:
getDropMode(), getDropLocation(), JComponent.setTransferHandler(javax.swing.TransferHandler), TransferHandler

getDropMode

public final DropMode getDropMode()
返回此组件的放置模式。

返回:
此组件的放置模式
从以下版本开始:
1.6
另请参见:
setDropMode(javax.swing.DropMode)

getDropLocation

public final JTree.DropLocation getDropLocation()
返回该组件上 DnD 操作期间此组件应该视觉上指示为放置操作的位置;如果当前未显示任何位置,则返回 null

此方法不用于从 TransferHandler 查询放置操作,因为放置操作只有在 TransferHandlercanImport 已返回并允许显示该位置之后才被设置。

当此属性更改时,该组件将触发名为 "dropLocation" 的属性更改事件。

返回:
放置位置
从以下版本开始:
1.6
另请参见:
setDropMode(javax.swing.DropMode), TransferHandler.canImport(TransferHandler.TransferSupport)

isPathEditable

public boolean isPathEditable(TreePath path)
返回 isEditable。在编辑开始确保给定的路径可以编辑之前,这可以从 UI 调用。这作为子类的入口点提供,以添加经过过滤的编辑,而无需借助于创建新编辑器。

返回:
如果每个父节点和节点本身可编辑,则返回 true
另请参见:
isEditable()

getToolTipText

public String getToolTipText(MouseEvent event)
重写 JComponentgetToolTipText 方法,以允许使用渲染器的提示(如果渲染器设置了文本)。

注:对于要正确显示其渲染器工具提示的 JTreeJTree 必须是向 ToolTipManager 注册的组件。这可以通过调用 ToolTipManager.sharedInstance().registerComponent(tree) 来完成。它不能自动完成!

覆盖:
JComponent 中的 getToolTipText
参数:
event - 启动 ToolTip 显示的 MouseEvent
返回:
包含工具提示的字符串,如果 event 为 null,则返回 null

convertValueToText

public String convertValueToText(Object value,
                                 boolean selected,
                                 boolean expanded,
                                 boolean leaf,
                                 int row,
                                 boolean hasFocus)
通过渲染器调用以将指定值转换为文本。此实现返回 value.toString,忽略所有其他参数。要控制该转换,则为此方法创建子类,并使用需要的任何参数。

参数:
value - 要转换成文本的 Object
selected - 如果选中节点,则为 true
expanded - 如果展开节点,则为 true
leaf - 如果节点是叶节点,则为 true
row - 指定节点的显示行的整数,其中 0 表示显示的第一行
hasFocus - 如果节点有焦点,则为 true
返回:
节点值的 String 表示形式

getRowCount

public int getRowCount()
返回当前正在显示的行数。

返回:
正在显示的行数

setSelectionPath

public void setSelectionPath(TreePath path)
选择指定路径标识的节点。如果隐藏该路径的任何组件(在折叠节点之下),并且 getExpandsSelectedPaths 为 true,则公开它(可查看)。

参数:
path - 指定要选择的节点的 TreePath

setSelectionPaths

public void setSelectionPaths(TreePath[] paths)
选择由指定的路径数组标识的节点。如果隐藏任何路径中的任何组件(在折叠节点之下),并且 getExpandsSelectedPaths 为 true,则公开它(可查看)。

参数:
paths - 指定要选择的节点的 TreePath 对象数组

setLeadSelectionPath

public void setLeadSelectionPath(TreePath newPath)
将标识的路径设置为前导路径。不能选择前导路径。JTree 不维持前导路径,UI 将更新它。

参数:
newPath - 新的前导路径
从以下版本开始:
1.3

setAnchorSelectionPath

public void setAnchorSelectionPath(TreePath newPath)
将标识的路径设置为定位路径。JTree 不维持定位路径,UI 将更新它。

参数:
newPath - 新的定位路径
从以下版本开始:
1.3

setSelectionRow

public void setSelectionRow(int row)
选择显示的指定行的节点。

参数:
row - 要选择的行,其中 0 是显示的第一行

setSelectionRows

public void setSelectionRows(int[] rows)
选择与显示的每个指定行对应的节点。如果 rows 的特定元素 < 0 或 >= getRowCount,则它会被忽略。如果 rows 中的元素都不是有效的行,则会清除该选择。这就好像调用 clearSelection 一样。

参数:
rows - 指定要选择的行的 int 数组,其中 0 指示显示的第一行

addSelectionPath

public void addSelectionPath(TreePath path)
将由指定的 TreePath 标识的节点添加到当前选择。如果路径的所有组件都不可查看,并且 getExpandsSelectedPaths 为 true,则使得其可以查看。

注意,JTree 不允许完全相同的节点作为子节点存在于同一父节点之下 - 每个兄弟节点必须是惟一的对象。

参数:
path - 要添加的 TreePath

addSelectionPaths

public void addSelectionPaths(TreePath[] paths)
将路径数组中的每个路径添加到当前选择。如果任何路径的所有组件都不可查看,并且 getExpandsSelectedPaths 为 true,则其可以查看。

注意,JTree 不允许完全相同的节点作为子节点存在于同一父节点之下 - 每个兄弟节点必须是惟一的对象。

参数:
paths - 指定要添加的节点的 TreePath 对象数组

addSelectionRow

public void addSelectionRow(int row)
将指定行处的路径添加到当前选择。

参数:
row - 指定要添加的节点行的整数,其中 0 表示显示的第一行

addSelectionRows

public void addSelectionRows(int[] rows)
将每个指定行处的路径添加到当前选择。

参数:
rows - 指定要添加的行的 int 数组,其中 0 指示显示的第一行

getLastSelectedPathComponent

public Object getLastSelectedPathComponent()
返回当前选择的第一个节点中的最后一个路径组件。

返回:
首选节点的 TreePath 中的最后一个 Object,若未选择任何内容,则返回 null
另请参见:
TreePath.getLastPathComponent()

getLeadSelectionPath

public TreePath getLeadSelectionPath()
返回标识为前导的路径。

返回:
标识为前导的路径

getAnchorSelectionPath

public TreePath getAnchorSelectionPath()
返回标识为定位的路径。

返回:
标识为定位的路径
从以下版本开始:
1.3

getSelectionPath

public TreePath getSelectionPath()
返回首选节点的路径。

返回:
首选节点的 TreePath,如果当前未选择任何内容,则返回 null

getSelectionPaths

public TreePath[] getSelectionPaths()
返回所有选择值的路径。

返回:
指示所选节点的 TreePath 对象的数组,如果当前未选择任何内容,则返回 null

getSelectionRows

public int[] getSelectionRows()
返回所有当前选择的行。此方法仅转发到 TreeSelectionModel。若未选择任何内容,则返回 null 或一个空数组,具体取决于 TreeSelectionModel 的实现。

返回:
标识所有当前选择的行的整数数组,其中 0 表示显示的第一行

getSelectionCount

public int getSelectionCount()
返回选择的节点数。

返回:
选择的节点数

getMinSelectionRow

public int getMinSelectionRow()
获取选择的第一行。

返回:
指定选择的第一行的整数,其中 0 表示显示的第一行

getMaxSelectionRow

public int getMaxSelectionRow()
返回选择的最后一行。

返回:
指定选择的最后一行的整数,其中 0 表示显示的第一行

getLeadSelectionRow

public int getLeadSelectionRow()
返回与前导路径对应的行索引。

返回:
提供前导路径的行索引的整数,其中 0 表示显示的第一行;如果 leadPathnull,则返回 -1

isPathSelected

public boolean isPathSelected(TreePath path)
如果当前选择了路径标识的条目,则返回 true。

参数:
path - 标识节点的 TreePath
返回:
如果选择该节点,则返回 true

isRowSelected

public boolean isRowSelected(int row)
如果选择了行标识的节点,则返回 true。

参数:
row - 指定一个显示行的整数,其中 0 表示显示的第一行
返回:
如果选择该节点,则返回 true

getExpandedDescendants

public Enumeration<TreePath> getExpandedDescendants(TreePath parent)
返回当前展开的 parent 路径的子路径的 Enumeration。如果当前没有展开 parent,将返回 null。如果在返回的 Enumeration 上迭代时展开/折叠节点,则不能返回所有展开的路径,或者可能返回不再展开的路径。

参数:
parent - 要检查的路径
返回:
parent 的子路径的 Enumeration,如果当前没有展开 parent,则返回 null

hasBeenExpanded

public boolean hasBeenExpanded(TreePath path)
如果已经展开路径标识的节点,则返回 true。

返回:
如果已经展开 path,则返回 true

isExpanded

public boolean isExpanded(TreePath path)
如果当前展开了路径标识的节点,则返回 true。

参数:
path - 指定要检查的节点的 TreePath
返回:
如果折叠了节点的路径中的任何节点,则返回 false,如果展开了路径中的所有节点,则返回 true

isExpanded

public boolean isExpanded(int row)
如果当前展开了指定显示行处的节点,则返回 true。

参数:
row - 要检查的行,其中 0 表示显示的第一行
返回:
如果当前展开了节点,则返回 true,否则返回 false

isCollapsed

public boolean isCollapsed(TreePath path)
如果当前折叠了路径标识的值,则返回 true,如果当前未显示路径中的任何值,则返回 false。

参数:
path - 要检查的 TreePath
返回:
如果折叠了节点路径中的任何节点,则返回 true,如果展开了路径中的所有节点,则返回 false

isCollapsed

public boolean isCollapsed(int row)
如果折叠了指定显示行处的节点,则返回 true。

参数:
row - 要检查的行,其中 0 表示显示的第一行
返回:
如果当前折叠节点,则返回 true,否则返回 false

makeVisible

public void makeVisible(TreePath path)
确保路径标识的节点当前可查看。

参数:
path - 使之可查看的 TreePath

isVisible

public boolean isVisible(TreePath path)
如果当前可查看路径标识的值,则返回 true,这意味着该路径或者是根路径,或者它的所有父路径均被展开。否则,此方法返回 false。

返回:
如果该节点可查看,则返回 true,否则返回 false

getPathBounds

public Rectangle getPathBounds(TreePath path)
返回将指定节点绘入的 Rectangle。如果隐藏了路径中的任何组件(在折叠的父路径下),则返回 null

注:
此方法返回一个有效的矩形,即使当前不显示指定的节点。

参数:
path - 标识节点的 TreePath
返回:
将节点绘入的 Rectangle,或者返回 null

getRowBounds

public Rectangle getRowBounds(int row)
返回将指定行处的节点绘入的 Rectangle

参数:
row - 要绘制的行,其中 0 表示显示的第一行
返回:
将节点绘入的 Rectangle

scrollPathToVisible

public void scrollPathToVisible(TreePath path)
确保路径中所有的路径组件均展开(最后一个路径组件除外)并滚动,以便显示该路径标识的节点。仅当此 JTree 包含在 JScrollPane 中时才工作。

参数:
path - 标识引入视图的节点的 TreePath

scrollRowToVisible

public void scrollRowToVisible(int row)
滚动行标识的条目,直到显示出来。执行将行引入视图必需的最小滚动数量。仅当此 JTree 包含在 JScrollPane 中时才工作。

参数:
row - 指定要滚动的行的整数,其中 0 表示显示的第一行

getPathForRow

public TreePath getPathForRow(int row)
返回指定行的路径。如果 row 不可见,则返回 null

参数:
row - 指定行的整数
返回:
指定节点的 TreePath,如果 row < 0row > getRowCount(),则返回 null

getRowForPath

public int getRowForPath(TreePath path)
返回显示由指定路径标识的节点的行。

参数:
path - 标识节点的 TreePath
返回:
指定显示行的整数,其中 0 表示显示的第一行,如果路径中任何元素隐藏在折叠的父路径之下,则返回 -1。

expandPath

public void expandPath(TreePath path)
确保指定路径标识的节点展开,并且可查看。如果路径中的最后一项是叶节点,则此方法无效。

参数:
path - 标识节点的 TreePath

expandRow

public void expandRow(int row)
确保指定行中的节点展开,并且可查看。

如果 row < 0 或 >= getRowCount,则此方法无效。

参数:
row - 指定一个显示行的整数,其中 0 表示显示的第一行

collapsePath

public void collapsePath(TreePath path)
确保指定路径标识的节点是折叠的,并且可查看。

参数:
path - 标识节点的 TreePath

collapseRow

public void collapseRow(int row)
确保指定行中的节点是折叠的。

如果 row < 0 或 >= getRowCount,则此方法无效。

参数:
row - 指定一个显示行的整数,其中 0 表示显示的第一行

getPathForLocation

public TreePath getPathForLocation(int x,
                                   int y)
返回指定位置处的节点路径。

参数:
x - 提供水平像素数的整数,从显示区域左边开始减去左边距
y - 提供垂直像素数的整数,从显示区域顶部开始减去顶边距
返回:
该位置处节点的 TreePath

getRowForLocation

public int getRowForLocation(int x,
                             int y)
返回指定位置的行。

参数:
x - 提供水平像素数的整数,从显示区域左边开始减去左边距
y - 提供垂直像素数的整数,从显示区域顶部开始减去顶边距
返回:
与该位置对应的行,如果该位置不在显示的单元格的边界内,则返回 -1
另请参见:
getClosestRowForLocation(int, int)

getClosestPathForLocation

public TreePath getClosestPathForLocation(int x,
                                          int y)
返回离 x,y 最近的节点的路径。如果当前查看不到任何节点,或不存在模型,则返回 null,否则始终返回有效路径。要测试该节点是否正好位于 x, y,请获取该节点的边界,并根据该边界测试 x, y。

参数:
x - 提供水平像素数的整数,从显示区域左边开始减去左边距
y - 提供垂直像素数的整数,从显示区域顶部开始减去顶边距
返回:
最靠近该位置的节点的 TreePath,如果没有可查看内容,或不存在模型,则返回 null
另请参见:
getPathForLocation(int, int), getPathBounds(javax.swing.tree.TreePath)

getClosestRowForLocation

public int getClosestRowForLocation(int x,
                                    int y)
返回离 x,y 最近的节点的行。如果查看不到任何节点,或者不存在模型,则返回 -1。否则始终返回有效的行。要测试返回的对象是否正好位于 x, y,请获取返回行处的节点的边界,并根据该边界测试 x,y。

参数:
x - 提供水平像素数的整数,从显示区域左边开始减去左边距
y - 提供垂直像素数的整数,从显示区域顶部开始减去顶边距
返回:
最靠近该位置的行,如果没有可查看内容或不存在模型,则返回 -1
另请参见:
getRowForLocation(int, int), getRowBounds(int)

isEditing

public boolean isEditing()
如果正在编辑树,则返回 true。使用 getSelectionPath 可以获取正在编辑的项。

返回:
如果用户当前正在编辑节点,则返回 true
另请参见:
getSelectionPath()

stopEditing

public boolean stopEditing()
结束当前编辑会话。(DefaultTreeCellEditor 对象可以保存当前在单元格上进行的任何编辑。其他实现可以进行不同方式的操作。)如果不编辑树,则没有任何影响。
注:
当用户在树中更改它们的位置时,要使编辑-保存自动化,请使用 setInvokesStopCellEditing(boolean)

返回:
如果编辑正在进行中,并且目前已停止,则返回 true,如果编辑不在进行中,则返回 false

cancelEditing

public void cancelEditing()
取消当前编辑会话。如果不编辑树,则没有任何影响。


startEditingAtPath

public void startEditingAtPath(TreePath path)
选择指定路径标识的节点,并开始编辑。如果 CellEditor 不允许编辑指定的项,则编辑尝试失败。

参数:
path - 标识节点的 TreePath

getEditingPath

public TreePath getEditingPath()
返回当前正在编辑的元素的路径。

返回:
正在编辑的节点的 TreePath

setSelectionModel

public void setSelectionModel(TreeSelectionModel selectionModel)
设置树的选择模型。若指定 null 值,则使用空 selectionModel,不允许选择。

参数:
selectionModel - 要使用的 TreeSelectionModelnull 表示禁用选择
另请参见:
TreeSelectionModel

getSelectionModel

public TreeSelectionModel getSelectionModel()
返回选择的模型。应该始终返回非 null 值。如果您不希望允许选择任何内容,则将选择模型设置为 null,它会强制使用空选择模型。

另请参见:
setSelectionModel(javax.swing.tree.TreeSelectionModel)

getPathBetweenRows

protected TreePath[] getPathBetweenRows(int index0,
                                        int index1)
返回 JTreePath 实例,它表示 index0 和 index1(包括 index1)之间的路径。如果不存在树,则返回 null

参数:
index0 - 指定一个显示行的整数,其中 0 表示显示的第一行
index1 - 指定第二个显示行的整数
返回:
TreePath 对象的数组(index0 和 index1 之间的每个节点包含一个该对象);如果不存在树,则返回 null

setSelectionInterval

public void setSelectionInterval(int index0,
                                 int index1)
选择 index0 和 index1(包含)之间的节点。

参数:
index0 - 指定一个显示行的整数,其中 0 是显示的第一行
index1 - 指定第二个显示行的整数

addSelectionInterval

public void addSelectionInterval(int index0,
                                 int index1)
将 index0 和 index1(包含)之间的路径添加到该选择。

参数:
index0 - 指定一个显示行的整数,其中 0 是显示的第一行
index1 - 指定第二个显示行的整数

removeSelectionInterval

public void removeSelectionInterval(int index0,
                                    int index1)
从该选择中移除 index0 和 index1(包含)之间的节点。

参数:
index0 - 指定一个显示行的整数,其中 0 是显示的第一行
index1 - 指定第二个显示行的整数

removeSelectionPath

public void removeSelectionPath(TreePath path)
从当前选择中移除指定路径标识的节点。

参数:
path - 标识节点的 TreePath

removeSelectionPaths

public void removeSelectionPaths(TreePath[] paths)
从当前选择移除指定路径标识的节点。

参数:
paths - 指定要移除的节点的 TreePath 对象数组

removeSelectionRow

public void removeSelectionRow(int row)
从当前选择移除索引 row 处的行。

参数:
row - 要移除的行

removeSelectionRows

public void removeSelectionRows(int[] rows)
移除在每个指定行处选择的行。

参数:
rows - 指定显示行的 int 数组,其中 0 表示显示的第一行

clearSelection

public void clearSelection()
清除该选择。


isSelectionEmpty

public boolean isSelectionEmpty()
如果该选择当前为空,则返回 true。

返回:
如果该选择当前为空,则返回 true

addTreeExpansionListener

public void addTreeExpansionListener(TreeExpansionListener tel)
TreeExpansion 事件添加侦听器。

参数:
tel - 当展开或折叠(“负展开”)树节点时,将要通知的 TreeExpansionListener

removeTreeExpansionListener

public void removeTreeExpansionListener(TreeExpansionListener tel)
移除 TreeExpansion 事件的侦听器。

参数:
tel - 要移除的 TreeExpansionListener

getTreeExpansionListeners

public TreeExpansionListener[] getTreeExpansionListeners()
返回使用 addTreeExpansionListener() 添加到此 JTree 的所有 TreeExpansionListener 的数组。

返回:
添加的所有 TreeExpansionListener,若未添加任何侦听器,则返回空数组
从以下版本开始:
1.4

addTreeWillExpandListener

public void addTreeWillExpandListener(TreeWillExpandListener tel)
TreeWillExpand 事件添加侦听器。

参数:
tel - 当展开或折叠(“负展开”)树节点时,将要通知的 TreeWillExpandListener

removeTreeWillExpandListener

public void removeTreeWillExpandListener(TreeWillExpandListener tel)
移除 TreeWillExpand 事件的侦听器。

参数:
tel - 要移除的 TreeWillExpandListener

getTreeWillExpandListeners

public TreeWillExpandListener[] getTreeWillExpandListeners()
返回使用 addTreeWillExpandListener() 添加到此 JTree 的所有 TreeWillExpandListener 的数组。

返回:
添加的所有 TreeWillExpandListener,若未添加任何侦听器,则返回空数组
从以下版本开始:
1.4

fireTreeExpanded

public void fireTreeExpanded(TreePath path)
通知已注册对获得此事件类型通知感兴趣的所有侦听器。使用 path 参数以延迟方式创建事件实例。

参数:
path - 指示展开的节点的 TreePath
另请参见:
EventListenerList

fireTreeCollapsed

public void fireTreeCollapsed(TreePath path)
通知已注册对获得此事件类型通知感兴趣的所有侦听器。使用 path 参数以延迟方式创建事件实例。

参数:
path - 指示折叠的节点的 TreePath
另请参见:
EventListenerList

fireTreeWillExpand

public void fireTreeWillExpand(TreePath path)
                        throws ExpandVetoException
通知已注册对获得此事件类型通知感兴趣的所有侦听器。使用 path 参数以延迟方式创建事件实例。

参数:
path - 指示展开的节点的 TreePath
抛出:
ExpandVetoException
另请参见:
EventListenerList

fireTreeWillCollapse

public void fireTreeWillCollapse(TreePath path)
                          throws ExpandVetoException
通知已注册对获得此事件类型通知感兴趣的所有侦听器。使用 path 参数以延迟方式创建事件实例。

参数:
path - 指示展开的节点的 TreePath
抛出:
ExpandVetoException
另请参见:
EventListenerList

addTreeSelectionListener

public void addTreeSelectionListener(TreeSelectionListener tsl)
TreeSelection 事件添加侦听器。

参数:
tsl - 当选中或取消选中(“负选择”)节点时,将要通知的 TreeSelectionListener

removeTreeSelectionListener

public void removeTreeSelectionListener(TreeSelectionListener tsl)
移除 TreeSelection 侦听器。

参数:
tsl - 要移除的 TreeSelectionListener

getTreeSelectionListeners

public TreeSelectionListener[] getTreeSelectionListeners()
返回使用 addTreeSelectionListener() 添加到此 JTree 的所有 TreeSelectionListener 的数组。

返回:
添加的所有 TreeSelectionListener,若未添加任何侦听器,则返回空数组
从以下版本开始:
1.4

fireValueChanged

protected void fireValueChanged(TreeSelectionEvent e)
通知已注册对获得此事件类型通知感兴趣的所有侦听器。

参数:
e - 要激发的 TreeSelectionEvent;当选中或取消选中节点时,由 TreeSelectionModel 生成
另请参见:
EventListenerList

treeDidChange

public void treeDidChange()
当树被更改得足以需要调整边界大小,但还不足以需要移除展开的节点集(例如,展开或折叠节点,或者将节点插入到树)时发送。您从不需要调用它,当需要时,UI 会调用它。


setVisibleRowCount

public void setVisibleRowCount(int newCount)
设置要显示的行数。仅当树包含在 JScrollPane 中时才工作,并将调整首选大小和该滚动窗格的大小。

参数:
newCount - 要显示的行数

getVisibleRowCount

public int getVisibleRowCount()
返回显示区域中显示的行数。

返回:
显示的行数

getNextMatch

public TreePath getNextMatch(String prefix,
                             int startingRow,
                             Position.Bias bias)
将 TreePath 返回到以一个前缀开头的下一个树元素。要处理 TreePath 到字符串的转换,将用到 convertValueToText

参数:
prefix - 要测试是否匹配的字符串
startingRow - 用于启动搜索的行
bias - 搜索方向,Position.Bias.Forward 或 Position.Bias.Backward。
返回:
以该前缀开始的下一个树元素的 TreePath;否则返回 null
抛出:
IllegalArgumentException - 如果前缀为 null,或 startingRow 在边界之外
从以下版本开始:
1.4

getPreferredScrollableViewportSize

public Dimension getPreferredScrollableViewportSize()
返回 JTree 的首选显示大小。高度根据 getVisibleRowCount 确定,宽度是当前的首选宽度。

指定者:
接口 Scrollable 中的 getPreferredScrollableViewportSize
返回:
包含首选大小的 Dimension 对象
另请参见:
JComponent.getPreferredSize()

getScrollableUnitIncrement

public int getScrollableUnitIncrement(Rectangle visibleRect,
                                      int orientation,
                                      int direction)
返回滚动时增加的数量。该数量是第一个显示行(不完全在视图中)的高度,如果该行完全显示,那么该数量是滚动方向中下一个行的高度。

指定者:
接口 Scrollable 中的 getScrollableUnitIncrement
参数:
visibleRect - 视口中可见的视图区域
orientation - SwingConstants.VERTICALSwingConstants.HORIZONTAL
direction - 小于 0 向上/左滚动,大于 0 向下/右滚动
返回:
按指定方向滚动的“单位”增量
另请参见:
JScrollBar.setUnitIncrement(int)

getScrollableBlockIncrement

public int getScrollableBlockIncrement(Rectangle visibleRect,
                                       int orientation,
                                       int direction)
返回块增量的数量,它是基于 orientationvisibleRect 高度或宽度。

指定者:
接口 Scrollable 中的 getScrollableBlockIncrement
参数:
visibleRect - 视口中可见的视图区域
orientation - SwingConstants.VERTICALSwingConstants.HORIZONTAL
direction - 小于 0 向上/左滚动,大于 0 向下/右滚动。
返回:
按指定方向滚动的“块”增量
另请参见:
JScrollBar.setBlockIncrement(int)

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth()
返回 false 指示视口的宽度不能确定表的宽度,除非树的首选宽度小于视口宽度。换句话说:确保树从不小于其视口。

指定者:
接口 Scrollable 中的 getScrollableTracksViewportWidth
返回:
false
另请参见:
Scrollable.getScrollableTracksViewportWidth()

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight()
返回 false 指示视口的高度不能确定表的高度,除非树的首选高度小于视口高度。换句话说:确保树从不小于其视口。

指定者:
接口 Scrollable 中的 getScrollableTracksViewportHeight
返回:
false
另请参见:
Scrollable.getScrollableTracksViewportHeight()

setExpandedState

protected void setExpandedState(TreePath path,
                                boolean state)
设置此 JTree 的展开状态。如果 state 为 true,则 path 的所有父路径和路径都被标记为展开。如果 state 为 false,则 path 的所有父路径被标记为展开,但是 path 本身被标记为折叠。

如果 TreeWillExpandListener 禁止它,则会失败。


getDescendantToggledPaths

protected Enumeration<TreePath> getDescendantToggledPaths(TreePath parent)
返回已展开且为 parent 的子路径的 TreePathEnumeration


removeDescendantToggledPaths

protected void removeDescendantToggledPaths(Enumeration<TreePath> toRemove)
移除已展开的 toRemoveTreePath 的所有子路径。


clearToggledPaths

protected void clearToggledPaths()
清除切换的树路径的缓存。这不会发送任何 TreeExpansionListener 事件。


createTreeModelListener

protected TreeModelListener createTreeModelListener()
创建并返回 TreeModelHandler 的一个实例。返回的对象负责 TreeModel 更改时更新展开的状态。

有关展开状态的含义的更多信息,请参阅上述 JTree 描述


removeDescendantSelectedPaths

protected boolean removeDescendantSelectedPaths(TreePath path,
                                                boolean includePath)
移除选择中的任何路径(path 的子路径)。如果 includePath 为 true,并且选中 path,则从该选择中移除它。

返回:
如果选择子路径,则返回 true
从以下版本开始:
1.3

paramString

protected String paramString()
返回此 JTree 的字符串表示形式。此方法仅在进行调试的时候使用,对于各个实现,所返回字符串的内容和格式可能有所不同。返回的字符串可能为空,但不可能为 null

覆盖:
JComponent 中的 paramString
返回:
JTree 的字符串表示形式。

getAccessibleContext

public AccessibleContext getAccessibleContext()
获取与此 JTree 关联的 AccessibleContext。对于 JTrees,AccessibleContext 采用 AccessibleJTree 的形式。必要时创建一个新的 AccessibleJTree 实例。

指定者:
接口 Accessible 中的 getAccessibleContext
覆盖:
JComponent 中的 getAccessibleContext
返回:
一个 AccessibleJTree,它充当此 JTree 的 AccessibleContext

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策