Module java.desktop
Package javax.swing

Class JTree

所有已实现的接口:
ImageObserver, MenuContainer, Serializable, Accessible, Scrollable

@JavaBean(defaultProperty="UI", description="A component that displays a set of hierarchical data as an outline.") public class JTree extends JComponent implements Scrollable, Accessible
一个以大纲形式显示一组分层数据的控件。您可以在如何使用树中找到面向任务的文档和树的使用示例,这是Java教程中的一个部分。

树中的特定节点可以通过TreePath(封装节点及其所有祖先的对象)或其显示行来标识,其中显示区域中的每一行显示一个节点。一个展开节点是一个非叶节点(由TreeModel.isLeaf(node)返回false来识别),当其所有祖先都展开时,它将显示其子节点。一个折叠节点是隐藏子节点的节点。一个隐藏节点是位于折叠祖先下的节点。所有可视节点的父节点都是展开的,但可能不会显示。一个显示节点既是可视的又在显示区域内,可以看到。

以下JTree方法使用"visible"表示"显示":
  • isRootVisible()
  • setRootVisible()
  • scrollPathToVisible()
  • scrollRowToVisible()
  • getVisibleRowCount()
  • setVisibleRowCount()
下一组JTree方法使用"visible"表示"可视"(在展开的父节点下):
  • isVisible()
  • makeVisible()
如果您想知道选择何时更改,请实现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的线程策略

警告:此类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间进行RMI。从1.4开始,已将所有JavaBeans的长期存储支持添加到java.beans包中。请参阅XMLEncoder

自从:
1.2
  • Field Details

    • 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。否则,树看起来就像一个列表,用户可能不知道“列表条目”实际上是树节点。

      参见:
    • 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
      选择模型的绑定属性名称。
      参见:
    • 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起:
      1.3
      参见:
    • ANCHOR_SELECTION_PATH_PROPERTY

      public static final String ANCHOR_SELECTION_PATH_PROPERTY
      锚定选择路径的绑定属性名称。
      自1.3起:
      1.3
      参见:
    • EXPANDS_SELECTED_PATHS_PROPERTY

      public static final String EXPANDS_SELECTED_PATHS_PROPERTY
      展开选定路径属性的绑定属性名称
      自1.3起:
      1.3
      参见:
  • Constructor Details

    • JTree

      public JTree()
      返回一个带有示例模型的JTree。树的默认模型将叶节点定义为没有子节点的任何节点。
      参见:
    • JTree

      public JTree(Object[] value)
      返回一个JTree,其中指定数组的每个元素作为新根节点的子节点,新根节点不显示。默认情况下,树将叶节点定义为没有子节点的任何节点。
      参数:
      value - 一个Object数组
      参见:
    • JTree

      public JTree(Vector<?> value)
      返回一个JTree,其中指定Vector的每个元素作为新根节点的子节点,新根节点不显示。默认情况下,树将叶节点定义为没有子节点的任何节点。
      参数:
      value - 一个Vector
      参见:
    • JTree

      public JTree(Hashtable<?,?> value)
      返回一个从Hashtable创建的JTree,不显示根节点。在HashTable中的键/值对的每个值成为新根节点的子节点。默认情况下,树将叶节点定义为没有子节点的任何节点。
      参数:
      value - 一个Hashtable
      参见:
    • JTree

      public JTree(TreeNode root)
      返回一个以指定TreeNode为根节点的JTree,显示根节点。默认情况下,树将叶节点定义为没有子节点的任何节点。
      参数:
      root - 一个TreeNode对象
      参见:
    • JTree

      public JTree(TreeNode root, boolean asksAllowsChildren)
      返回一个以指定TreeNode为根节点的JTree,显示根节点,并根据指定的方式决定节点是否为叶节点。
      参数:
      root - 一个TreeNode对象
      asksAllowsChildren - 如果为false,则没有子节点的任何节点都是叶节点;如果为true,则只有不允许有子节点的节点是叶节点
      参见:
    • JTree

      @ConstructorProperties("model") public JTree(TreeModel newModel)
      返回一个使用指定数据模型创建的显示根节点的JTree实例。
      参数:
      newModel - 要用作数据模型的TreeModel
  • Method Details

    • getDefaultTreeModel

      protected static TreeModel getDefaultTreeModel()
      创建并返回一个示例TreeModel。主要用于beanbuilders以显示有趣的内容。
      返回:
      默认TreeModel
    • createTreeModel

      protected static TreeModel createTreeModel(Object value)
      返回包装指定对象的TreeModel。如果对象是:
      • Object数组,
      • Hashtable,或
      • Vector
      则创建一个新根节点,其中每个传入对象都作为子节点。否则,创建一个具有值"root"的新根节点。
      参数:
      value - 用作TreeModel基础的Object
      返回:
      包装指定对象的TreeModel
    • getUI

      public TreeUI getUI()
      返回渲染此组件的L&F对象。
      覆盖:
      getUI 在类 JComponent
      返回:
      渲染此组件的TreeUI对象
    • setUI

      @BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.") public void setUI(TreeUI ui)
      设置渲染此组件的L&F对象。

      这是一个绑定属性。

      参数:
      ui - TreeUI L&F对象
      参见:
    • updateUI

      public void updateUI()
      来自UIManager的通知,L&F已更改。用UIManager的最新版本替换当前UI对象。
      覆盖:
      updateUI 在类 JComponent
      参见:
    • getUIClassID

      @BeanProperty(bound=false) public String getUIClassID()
      返回渲染此组件的L&F类的名称。
      覆盖:
      getUIClassID 在类 JComponent
      返回:
      字符串"TreeUI"
      参见:
    • getCellRenderer

      public TreeCellRenderer getCellRenderer()
      返回正在渲染每个单元格的当前TreeCellRenderer
      返回:
      正在渲染每个单元格的TreeCellRenderer
    • setCellRenderer

      @BeanProperty(description="The TreeCellRenderer that will be used to draw each cell.") public void setCellRenderer(TreeCellRenderer x)
      设置将用于绘制每个单元格的TreeCellRenderer

      这是一个绑定属性。

      参数:
      x - 用于渲染每个单元格的TreeCellRenderer
    • setEditable

      @BeanProperty(description="Whether the tree is editable.") public void setEditable(boolean flag)
      确定树是否可编辑。如果新设置与现有设置不同,则触发属性更改事件。

      这是一个绑定属性。

      参数:
      flag - 一个布尔值,如果树可编辑则为true
    • isEditable

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

      @BeanProperty(description="The cell editor. A null value implies the tree cannot be edited.") public void setCellEditor(TreeCellEditor cellEditor)
      设置单元格编辑器。null值表示树无法编辑。如果这代表cellEditor的更改,则在所有侦听器上调用propertyChange方法。

      这是一个绑定属性。

      参数:
      cellEditor - 要使用的TreeCellEditor
    • getCellEditor

      public TreeCellEditor getCellEditor()
      返回用于编辑树中条目的编辑器。
      返回:
      正在使用的TreeCellEditor,如果树无法编辑则返回null
    • getModel

      public TreeModel getModel()
      返回提供数据的TreeModel
      返回:
      提供数据的TreeModel
    • setModel

      @BeanProperty(description="The TreeModel that will provide the data.") public void setModel(TreeModel newModel)
      设置将提供数据的TreeModel

      这是一个绑定属性。

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

      public boolean isRootVisible()
      如果树的根节点显示,则返回true。
      返回:
      如果树的根节点显示,则为true
      参见:
    • setRootVisible

      @BeanProperty(description="Whether or not the root node from the TreeModel is visible.") public void setRootVisible(boolean rootVisible)
      确定TreeModel的根节点是否可见。

      这是一个绑定属性。

      参数:
      rootVisible - 如果树的根节点应显示则为true
      参见:
    • setShowsRootHandles

      @BeanProperty(description="Whether the node handles are to be displayed.") public void setShowsRootHandles(boolean newValue)
      设置scrollsOnExpand属性,确定树是否可以滚动以显示先前隐藏的子项。如果此属性为true(默认值),则当节点展开时,树可以使用滚动使节点的最大可能数量的后代可见。在某些外观中,展开时可能不需要滚动树;这些外观将忽略此属性。

      这是一个绑定属性。

      参数:
      newValue - 如果应显示根句柄则为true;否则为false
      参见:
    • getShowsRootHandles

      public boolean getShowsRootHandles()
      返回showsRootHandles属性的值。
      返回:
      showsRootHandles属性的值
      参见:
    • setRowHeight

      @BeanProperty(description="The height of each cell.") public void setRowHeight(int rowHeight)
      设置每个单元格的高度,以像素为单位。如果指定的值小于或等于零,则将查询当前单元格渲染器以获取每行的高度。

      这是一个绑定属性。

      参数:
      rowHeight - 每个单元格的高度,以像素为单位
    • getRowHeight

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

      @BeanProperty(bound=false) public boolean isFixedRowHeight()
      返回每个显示行的高度是否固定大小。
      返回:
      每行的高度是否固定大小
    • setLargeModel

      @BeanProperty(description="Whether the UI should use a large model.") public void setLargeModel(boolean newValue)
      指定UI是否应使用大型模型。(并非所有UI都会实现此功能。)为LARGE_MODEL_PROPERTY触发属性更改。

      这是一个绑定属性。

      参数:
      newValue - 为UI建议大型模型则为true
      参见:
    • isLargeModel

      public boolean isLargeModel()
      如果树配置为使用大型模型,则返回true。
      返回:
      如果建议使用大型模型则为true
      参见:
    • setInvokesStopCellEditing

      @BeanProperty(description="Determines what happens when editing is interrupted, selecting another node in the tree, a change in the tree\'s data, or some other means.") public void setInvokesStopCellEditing(boolean newValue)
      确定通过选择树中的另一个节点、树的数据更改或其他方式中断编辑时会发生什么。将此属性设置为true会导致在编辑中断时自动保存更改。

      INVOKES_STOP_CELL_EDITING_PROPERTY触发属性更改。

      参数:
      newValue - 如果编辑中断时调用stopCellEditing并保存数据则为true;如果调用cancelCellEditing并丢失更改则为false
    • getInvokesStopCellEditing

      public boolean getInvokesStopCellEditing()
      返回编辑中断时会发生的指示器。
      返回:
      编辑中断时会发生的指示器
      参见:
    • setScrollsOnExpand

      @BeanProperty(description="Indicates if a node descendant should be scrolled when expanded.") public void setScrollsOnExpand(boolean newValue)
      设置scrollsOnExpand属性,确定树是否可能滚动以显示先前隐藏的子项。如果此属性为true(默认值),则当节点展开时,树可以使用滚动使节点的最大可能数量的后代可见。在某些外观中,展开时可能不需要滚动树;这些外观将忽略此属性。

      这是一个绑定属性。

      参数:
      newValue - false以禁用展开时的滚动;true以启用
      参见:
    • getScrollsOnExpand

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

      @BeanProperty(description="Number of clicks before a node will expand/collapse.") public void setToggleClickCount(int clickCount)
      设置在节点展开或关闭之前需要的鼠标点击次数。默认值为两次。

      这是一个绑定属性。

      参数:
      clickCount - 展开或关闭节点所需的鼠标点击次数
      自1.3起:
      1.3
    • getToggleClickCount

      public int getToggleClickCount()
      返回展开或关闭节点所需的鼠标点击次数。
      返回:
      展开节点所需的鼠标点击次数
      自1.3起:
      1.3
    • setExpandsSelectedPaths

      @BeanProperty(description="Indicates whether changes to the selection should make the parent of the path visible.") public void setExpandsSelectedPaths(boolean newValue)
      配置expandsSelectedPaths属性。如果为true,则每当选择更改时,无论是通过TreeSelectionModel还是JTree提供的覆盖方法,都会展开TreePath的父项以使其可见(可见意味着父路径已展开,不一定在JTree的可见矩形中)。如果为false,则在选择更改时,节点的父项不会变为可见(所有其父项都展开)。如果希望选择模型维护并非始终可见的路径(所有父项都展开),则此选项很有用。

      这是一个绑定属性。

      参数:
      newValue - expandsSelectedPaths的新值
      自1.3起:
      1.3
    • getExpandsSelectedPaths

      public boolean getExpandsSelectedPaths()
      返回expandsSelectedPaths属性。
      返回值:
      如果选择更改导致父路径展开,则返回true
      自版本:
      1.3
      另请参阅:
    • setDragEnabled

      @BeanProperty(bound=false, description="determines whether automatic drag handling is enabled") public void setDragEnabled(boolean b)
      打开或关闭自动拖动处理。为了启用自动拖动处理,此属性应设置为true,并且树的TransferHandler需要是non-nulldragEnabled属性的默认值为false

      尊重此属性并识别用户拖动手势的工作由外观实现负责,特别是树的TreeUI。当启用自动拖动处理时,大多数外观(包括那些子类化BasicLookAndFeel的外观)会在用户按下鼠标按钮并将鼠标移动几个像素时开始拖放操作。因此,将此属性设置为true可能会对选择行为产生微妙影响。

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

      参数:
      b - 是否启用自动拖动处理
      抛出:
      HeadlessException - 如果btrueGraphicsEnvironment.isHeadless()返回true
      自版本:
      1.4
      另请参阅:
    • getDragEnabled

      public boolean getDragEnabled()
      返回是否启用自动拖动处理。
      返回值:
      dragEnabled属性的值
      自版本:
      1.4
      另请参阅:
    • setDropMode

      public final void setDropMode(DropMode dropMode)
      设置此组件的放置模式。为了向后兼容,此属性的默认值为DropMode.USE_SELECTION。然而,建议使用其他模式中的一个,以获得更好的用户体验。例如,DropMode.ON提供类似的行为,显示项目为选定状态,但不会影响树中的实际选择。

      JTree支持以下放置模式:

      • DropMode.USE_SELECTION
      • DropMode.ON
      • DropMode.INSERT
      • DropMode.ON_OR_INSERT

      如果此组件具有接受放置的TransferHandler,则放置模式才有意义。

      参数:
      dropMode - 要使用的放置模式
      抛出:
      IllegalArgumentException - 如果放置模式不受支持或为null
      自版本:
      1.6
      另请参阅:
    • getDropMode

      public final DropMode getDropMode()
      返回此组件的放置模式。
      返回值:
      此组件的放置模式
      自版本:
      1.6
      另请参阅:
    • getDropLocation

      @BeanProperty(bound=false) public final JTree.DropLocation getDropLocation()
      返回此组件在拖放操作期间应在其中视觉指示为放置位置的位置,如果当前不应显示任何位置,则返回null

      此方法不适用于从TransferHandler查询放置位置,因为放置位置仅在TransferHandlercanImport返回并允许显示位置后设置。

      当此属性更改时,组件将触发名称为“dropLocation”的属性更改事件。

      返回值:
      放置位置
      自版本:
      1.6
      另请参阅:
    • isPathEditable

      public boolean isPathEditable(TreePath path)
      返回isEditable。在编辑开始之前,UI会调用此方法以确保给定路径可以编辑。这是为了让子类添加过滤编辑而提供的入口点,而无需创建新的编辑器。
      参数:
      path - 标识节点的TreePath
      返回值:
      如果每个父节点和节点本身都可编辑,则返回true
      另请参阅:
    • getToolTipText

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

      注意:为了使JTree正确显示其渲染器的工具提示,JTree必须是ToolTipManager中注册的组件。这可以通过调用ToolTipManager.sharedInstance().registerComponent(tree)来完成。这不会自动完成!

      重写:
      getToolTipText 在类 JComponent
      参数:
      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

      @BeanProperty(bound=false) public int getRowCount()
      返回可视节点的数量。如果所有父节点都已展开,则节点是可视的。如果isRootVisible()true,则根节点仅在此计数中包括。如果尚未设置UI,则返回0
      返回值:
      可视节点的数量
    • setSelectionPath

      public void setSelectionPath(TreePath path)
      选择由指定路径标识的节点。如果路径的任何组件被隐藏(在折叠节点下),并且getExpandsSelectedPaths为true,则会显示(可视化)它。
      参数:
      path - 指定要选择的节点的TreePath
    • setSelectionPaths

      public void setSelectionPaths(TreePath[] paths)
      选择由指定路径数组标识的节点。如果任何路径中的任何组件被隐藏(在折叠节点下),并且getExpandsSelectedPaths为true,则会显示(可视化)它。
      参数:
      paths - 指定要选择的节点的TreePath对象数组
    • setLeadSelectionPath

      @BeanProperty(description="Lead selection path") public void setLeadSelectionPath(TreePath newPath)
      设置作为主导的路径标识。主导路径可能未被选中。主导路径不由JTree维护,而是UI将更新它。

      这是一个绑定属性。

      参数:
      newPath - 新的主导路径
      自版本:
      1.3
    • setAnchorSelectionPath

      @BeanProperty(description="Anchor selection path") 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 - 一个指定要选择的行的整数数组,其中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 - 一个整数数组,指定要添加的行数,其中0表示显示中的第一行
    • getLastSelectedPathComponent

      @BeanProperty(bound=false) public Object getLastSelectedPathComponent()
      返回所选路径的最后一个路径组件。这是一个方便的方法,用于getSelectionModel().getSelectionPath().getLastPathComponent()。如果选择只有一个路径,则通常只有这个方法有用。
      返回:
      所选路径的最后一个路径组件,如果没有选择任何内容则返回null
      另请参阅:
    • getLeadSelectionPath

      public TreePath getLeadSelectionPath()
      返回标识为主导的路径。
      返回:
      标识为主导的路径
    • getAnchorSelectionPath

      public TreePath getAnchorSelectionPath()
      返回标识为锚点的路径。
      返回:
      标识为锚点的路径
      自1.3起:
      1.3
    • getSelectionPath

      public TreePath getSelectionPath()
      返回第一个选定节点的路径。
      返回:
      第一个选定节点的TreePath,如果当前没有选择任何内容则返回null
    • getSelectionPaths

      public TreePath[] getSelectionPaths()
      返回所有选定值的路径。
      返回:
      一个TreePath对象数组,指示选定的节点,如果当前没有选择任何内容则返回null
    • getSelectionRows

      public int[] getSelectionRows()
      返回当前选定的所有行。此方法简单地转发到TreeSelectionModel。如果没有选择任何内容,则根据TreeSelectionModel的实现将返回null或空数组。
      返回:
      一个整数数组,标识当前选定的所有行,其中0是显示中的第一行
    • getSelectionCount

      @BeanProperty(bound=false) public int getSelectionCount()
      返回选定的节点数。
      返回:
      选定的节点数
    • getMinSelectionRow

      @BeanProperty(bound=false) public int getMinSelectionRow()
      返回最小的选定行。如果选择为空,或者没有选定的路径可见,则返回-1
      返回:
      最小的选定行
    • getMaxSelectionRow

      @BeanProperty(bound=false) public int getMaxSelectionRow()
      返回最大的选定行。如果选择为空,或者没有选定的路径可见,则返回-1
      返回:
      最大的选定行
    • getLeadSelectionRow

      @BeanProperty(bound=false) 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 - 标识节点的TreePath
      返回:
      如果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。
      参数:
      path - 标识节点的TreePath
      返回:
      如果节点可见则返回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

      @BeanProperty(bound=false) public TreePath getPathForRow(int row)
      返回指定行的路径。如果row不可见,或者未设置TreeUI,则返回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
      参见:
    • getClosestPathForLocation

      public TreePath getClosestPathForLocation(int x, int y)
      返回最接近x,y的节点的路径。如果当前没有可视节点,或者没有模型,则返回null,否则始终返回有效路径。要测试节点是否正好在x,y处,请获取节点的边界并将x,y与其进行比较。
      参数:
      x - 从显示区域左边缘水平像素数减去任何左边距的整数
      y - 从显示区域顶部垂直像素数减去任何顶部边距的整数
      返回:
      最接近该位置的节点的TreePath,如果没有可视内容或没有模型则返回null
      参见:
    • getClosestRowForLocation

      public int getClosestRowForLocation(int x, int y)
      返回最接近x,y的节点的行。如果没有可视节点或没有模型,则返回-1。否则,始终返回有效行。要测试返回的对象是否正好在x,y处,请获取返回行处节点的边界并将x,y与其进行比较。
      参数:
      x - 从显示区域左边缘水平像素数减去任何左边距的整数
      y - 从显示区域顶部垂直像素数减去任何顶部边距的整数
      返回:
      最接近该位置的行,如果没有可视内容或没有模型则返回-1
      参见:
    • isEditing

      @BeanProperty(bound=false) public boolean isEditing()
      如果树正在编辑,则返回true。可以使用getSelectionPath获取正在编辑的项目。
      返回:
      如果用户当前正在编辑节点,则返回true
      参见:
    • stopEditing

      public boolean stopEditing()
      结束当前的编辑会话。(DefaultTreeCellEditor对象会保存当前正在进行的单元格编辑。其他实现可能会有不同的操作方式。)如果树没有被编辑,则不会产生任何效果。
      注意:
      要使编辑保存在用户更改树中的位置时自动进行,请使用setInvokesStopCellEditing(boolean)
      返回:
      如果编辑正在进行并已停止,则返回true,如果编辑未进行则返回false
    • cancelEditing

      public void cancelEditing()
      取消当前的编辑会话。如果树没有被编辑,则不会产生任何效果。
    • startEditingAtPath

      public void startEditingAtPath(TreePath path)
      选择由指定路径标识的节点并开始编辑。如果CellEditor不允许为指定项目进行编辑,则编辑尝试失败。
      参数:
      path - 标识节点的TreePath
    • getEditingPath

      @BeanProperty(bound=false) public TreePath getEditingPath()
      返回当前正在编辑的元素的路径。
      返回:
      正在编辑的节点的TreePath
    • setSelectionModel

      @BeanProperty(description="The tree\'s selection model.") public void setSelectionModel(TreeSelectionModel selectionModel)
      设置树的选择模型。当指定null值时,将使用空的selectionModel,它不允许进行选择。

      这是一个绑定属性。

      参数:
      selectionModel - 要使用的TreeSelectionModel,或者指定null以禁用选择
      参见:
    • getSelectionModel

      public TreeSelectionModel getSelectionModel()
      返回选择模型。这应始终返回非null值。如果不希望允许选择任何内容,请将选择模型设置为null,这将强制使用空选择模型。
      返回:
      选择模型
      参见:
    • getPathBetweenRows

      protected TreePath[] getPathBetweenRows(int index0, int index1)
      返回指定行之间(包括)的路径。如果指定的索引在可视行集内,或者边界可视行集,则索引将受到可视行集的限制。如果指定的索引不在可视行集内,或者不边界可视行集,则返回一个空数组。例如,如果行数为10,并且使用-1, 20调用此方法,则指定的索引将受到可视行集的限制,并且将被视为使用0, 9调用。另一方面,如果使用-10, -1调用,则指定的索引不边界可视行集,将返回一个空数组。

      参数的顺序不影响结果。也就是说, getPathBetweenRows(x, y)等同于getPathBetweenRows(y, x)

      如果行数为0,或者指定的索引不边界可视行集,则返回一个空数组。

      参数:
      index0 - 范围内的第一个索引
      index1 - 范围内的最后一个索引
      返回:
      指定行索引之间(包括)的路径
    • setSelectionInterval

      public void setSelectionInterval(int index0, int index1)
      选择指定间隔内的行(包括)。如果指定的索引在可视行集内,或者边界可视行集,则指定的行将受到可视行集的限制。如果指定的索引不在可视行集内,或者不边界可视行集,则选择将被清除。例如,如果行数为10,并且使用-1, 20调用此方法,则指定的索引将边界可视范围,并且将被视为使用0, 9调用。另一方面,如果使用-10, -1调用,则指定的索引不边界可视行集,选择将被清除。

      参数的顺序不影响结果。也就是说, setSelectionInterval(x, y)等同于setSelectionInterval(y, x)

      参数:
      index0 - 要选择的范围内的第一个索引
      index1 - 要选择的范围内的最后一个索引
    • addSelectionInterval

      public void addSelectionInterval(int index0, int index1)
      将指定的行(包括)添加到选择中。如果指定的索引在可视行集内,或者边界可视行集,则指定的索引将受到可视行集的限制。如果索引不在可视行集内,或者不边界可视行集,则选择不会改变。例如,如果行数为10,并且使用-1, 20调用此方法,则指定的索引将边界可视范围,并且将被视为使用0, 9调用。另一方面,如果使用-10, -1调用,则指定的索引不边界可视行集,选择不会改变。

      参数的顺序不影响结果。也就是说, addSelectionInterval(x, y)等同于addSelectionInterval(y, x)

      参数:
      index0 - 要添加到选择中的范围内的第一个索引
      index1 - 要添加到选择中的范围内的最后一个索引
    • removeSelectionInterval

      public void removeSelectionInterval(int index0, int index1)
      从选择中移除指定的行(包括)。如果指定的索引在可视行集内,或者边界可视行集,则指定的索引将受到可视行集的限制。如果指定的索引不在可视行集内,或者不边界可视行集,则选择不会改变。例如,如果行数为10,并且使用-1, 20调用此方法,则指定的范围边界可视范围,并且将被视为使用0, 9调用。另一方面,如果使用-10, -1调用,则指定的范围不边界可视行集,选择不会改变。

      参数的顺序不影响结果。也就是说, removeSelectionInterval(x, y)等同于removeSelectionInterval(y, x)

      参数:
      index0 - 要从选择中移除的第一个行
      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 - 指定显示行的整数数组,其中0是显示中的第一行
    • clearSelection

      public void clearSelection()
      清除选择。
    • isSelectionEmpty

      @BeanProperty(bound=false) public boolean isSelectionEmpty()
      如果选择当前为空,则返回true。
      返回:
      如果选择当前为空,则返回true
    • addTreeExpansionListener

      public void addTreeExpansionListener(TreeExpansionListener tel)
      添加TreeExpansion事件的监听器。
      参数:
      tel - 一个TreeExpansionListener,当树节点展开或折叠时将收到通知("负展开")
    • removeTreeExpansionListener

      public void removeTreeExpansionListener(TreeExpansionListener tel)
      移除一个TreeExpansion事件的监听器。
      参数:
      tel - 要移除的TreeExpansionListener
    • getTreeExpansionListeners

      @BeanProperty(bound=false) public TreeExpansionListener[] getTreeExpansionListeners()
      返回添加到此JTree中的所有TreeExpansionListener的数组,使用addTreeExpansionListener()方法。
      返回:
      所有已添加的TreeExpansionListener,如果没有添加监听器则返回空数组
      自版本:
      1.4
    • addTreeWillExpandListener

      public void addTreeWillExpandListener(TreeWillExpandListener tel)
      添加一个TreeWillExpand事件的监听器。
      参数:
      tel - 一个TreeWillExpandListener,当树节点将要展开或折叠时将收到通知("负展开")
    • removeTreeWillExpandListener

      public void removeTreeWillExpandListener(TreeWillExpandListener tel)
      移除一个TreeWillExpand事件的监听器。
      参数:
      tel - 要移除的TreeWillExpandListener
    • getTreeWillExpandListeners

      @BeanProperty(bound=false) public TreeWillExpandListener[] getTreeWillExpandListeners()
      返回添加到此JTree中的所有TreeWillExpandListener的数组,使用addTreeWillExpandListener()方法。
      返回:
      所有已添加的TreeWillExpandListener,如果没有添加监听器则返回空数组
      自版本:
      1.4
    • fireTreeExpanded

      public void fireTreeExpanded(TreePath path)
      通知所有已注册对此事件类型感兴趣的监听器。事件实例是使用path参数延迟创建的。
      参数:
      path - 指示已展开的节点的TreePath
      参见:
    • fireTreeCollapsed

      public void fireTreeCollapsed(TreePath path)
      通知所有已注册对此事件类型感兴趣的监听器。事件实例是使用path参数延迟创建的。
      参数:
      path - 指示已折叠的节点的TreePath
      参见:
    • fireTreeWillExpand

      public void fireTreeWillExpand(TreePath path) throws ExpandVetoException
      通知所有已注册对此事件类型感兴趣的监听器。事件实例是使用path参数延迟创建的。
      参数:
      path - 指示已展开的节点的TreePath
      抛出:
      ExpandVetoException - 如果阻止展开发生
      参见:
    • fireTreeWillCollapse

      public void fireTreeWillCollapse(TreePath path) throws ExpandVetoException
      通知所有已注册对此事件类型感兴趣的监听器。事件实例是使用path参数延迟创建的。
      参数:
      path - 指示已展开的节点的TreePath
      抛出:
      ExpandVetoException - 如果阻止折叠发生
      参见:
    • addTreeSelectionListener

      public void addTreeSelectionListener(TreeSelectionListener tsl)
      添加一个TreeSelection事件的监听器。
      参数:
      tsl - 当选择或取消选择节点时将收到通知的TreeSelectionListener("负选择")
    • removeTreeSelectionListener

      public void removeTreeSelectionListener(TreeSelectionListener tsl)
      移除一个TreeSelection监听器。
      参数:
      tsl - 要移除的TreeSelectionListener
    • getTreeSelectionListeners

      @BeanProperty(bound=false) public TreeSelectionListener[] getTreeSelectionListeners()
      返回添加到此JTree中的所有TreeSelectionListener的数组,使用addTreeSelectionListener()方法。
      返回:
      所有已添加的TreeSelectionListener,如果没有添加监听器则返回空数组
      自版本:
      1.4
    • fireValueChanged

      protected void fireValueChanged(TreeSelectionEvent e)
      通知所有已注册对此事件类型感兴趣的监听器。
      参数:
      e - 要触发的TreeSelectionEvent;由TreeSelectionModel在选择或取消选择节点时生成
      参见:
    • treeDidChange

      public void treeDidChange()
      当树已更改足够需要调整边界大小,但不足以需要移除展开的节点集时发送。例如,节点已展开或折叠,或节点已插入到树中。您不应该调用此方法,UI将根据需要调用此方法。
    • setVisibleRowCount

      @BeanProperty(description="The number of rows that are to be displayed.") public void setVisibleRowCount(int newCount)
      设置要显示的行数。只有当树包含在JScrollPane中时才有效,并且将调整该滚动窗格的首选大小和大小。

      这是一个绑定属性。

      参数:
      newCount - 要显示的行数
    • getVisibleRowCount

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

      public TreePath getNextMatch(String prefix, int startingRow, Position.Bias bias)
      返回下一个以前缀开头的树元素的TreePath。为了处理TreePath到String的转换,使用convertValueToText
      参数:
      prefix - 要匹配的字符串
      startingRow - 开始搜索的行
      bias - 搜索方向,可以是Position.Bias.Forward或Position.Bias.Backward。
      返回:
      以前缀开头的下一个树元素的TreePath;否则为null
      抛出:
      IllegalArgumentException - 如果前缀为null或startingRow超出范围
      自版本:
      1.4
    • getPreferredScrollableViewportSize

      @BeanProperty(bound=false) public Dimension getPreferredScrollableViewportSize()
      返回JTree的首选显示大小。高度由getVisibleRowCount确定,宽度为当前首选宽度。
      指定者:
      getPreferredScrollableViewportSize 在接口 Scrollable
      返回:
      包含首选大小的Dimension对象
      参见:
    • getScrollableUnitIncrement

      public int getScrollableUnitIncrement(Rectangle visibleRect, int orientation, int direction)
      返回滚动时的增量。增量是第一个未完全显示在视图中的行的高度,或者如果完全显示,则是滚动方向中下一行的高度。
      指定者:
      getScrollableUnitIncrement 在接口 Scrollable
      参数:
      visibleRect - 视口内可见的视图区域
      orientation - SwingConstants.VERTICALSwingConstants.HORIZONTAL
      direction - 小于零向上/左滚动,大于零向下/右滚动
      返回:
      指定方向的"单位"增量滚动
      参见:
    • getScrollableBlockIncrement

      public int getScrollableBlockIncrement(Rectangle visibleRect, int orientation, int direction)
      返回块增量的数量,基于visibleRect的高度或宽度,取决于orientation
      指定者:
      getScrollableBlockIncrement 在接口 Scrollable
      参数:
      visibleRect - 视口内可见的视图区域
      orientation - SwingConstants.VERTICALSwingConstants.HORIZONTAL
      direction - 小于零向上/左滚动,大于零向下/右滚动
      返回:
      指定方向的"块"增量滚动
      参见:
    • getScrollableTracksViewportWidth

      @BeanProperty(bound=false) public boolean getScrollableTracksViewportWidth()
      返回false以指示视口的宽度不确定表格的宽度,除非树的首选宽度小于视口的宽度。换句话说:确保树永远不小于其视口。
      指定者:
      getScrollableTracksViewportWidth 在接口 Scrollable
      返回:
      树是否应该跟踪视口的宽度
      参见:
    • getScrollableTracksViewportHeight

      @BeanProperty(bound=false) public boolean getScrollableTracksViewportHeight()
      返回false以指示视口的高度不确定表格的高度,除非树的首选高度小于视口的高度。换句话说:确保树永远不小于其视口。
      指定由:
      getScrollableTracksViewportHeight 在接口 Scrollable
      返回:
      树是否应该跟踪视口的高度
      参见:
    • setExpandedState

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

      如果TreeWillExpandListener否决此操作,则会失败。

      参数:
      path - 标识节点的TreePath
      state - 如果为true,则将标记path的所有父级和路径为展开。否则,将标记path的所有父级为展开,但path本身将被标记为折叠。
    • getDescendantToggledPaths

      protected Enumeration<TreePath> getDescendantToggledPaths(TreePath parent)
      返回一个TreePathsEnumeration,这些路径已经展开且是parent的后代。
      参数:
      parent - 一个路径
      返回:
      TreePathsEnumeration
    • removeDescendantToggledPaths

      protected void removeDescendantToggledPaths(Enumeration<TreePath> toRemove)
      移除已展开的TreePaths中在toRemove中的任何后代。
      参数:
      toRemove - 要移除的路径的枚举;如果为null则忽略
      抛出:
      ClassCastException - 如果toRemove包含一个不是TreePath的元素;null值将被忽略
    • clearToggledPaths

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

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

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

      返回:
      TreeModelHandler的实例
    • removeDescendantSelectedPaths

      protected boolean removeDescendantSelectedPaths(TreePath path, boolean includePath)
      移除选择中是path的后代的任何路径。如果includePath为true且path被选中,则它将从选择中移除。
      参数:
      path - 一个路径
      includePath - 如果为truepath被选中,则它将从选择中移除。
      返回:
      如果一个后代被选中,则返回true
      自:
      1.3
    • paramString

      protected String paramString()
      返回此JTree的字符串表示形式。此方法仅用于调试目的,返回的字符串的内容和格式可能因实现而异。返回的字符串可能为空,但不能为null
      覆盖:
      paramString 在类 JComponent
      返回:
      JTree的字符串表示形式。
    • getAccessibleContext

      @BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
      获取与此JTree关联的AccessibleContext。对于JTree,AccessibleContext采用AccessibleJTree的形式。如果需要,将创建一个新的AccessibleJTree实例。
      指定由:
      getAccessibleContext 在接口 Accessible
      覆盖:
      getAccessibleContext 在类 Component
      返回:
      作为此JTree的AccessibleContext的AccessibleJTree