Module java.desktop

Class BasicTreeUI

直接已知的子类:
MetalTreeUI, SynthTreeUI

public class BasicTreeUI extends TreeUI
用于层次数据结构的基本外观和感觉。
  • Field Details

    • collapsedIcon

      protected transient Icon collapsedIcon
      折叠图标。
    • expandedIcon

      protected transient Icon expandedIcon
      展开图标。
    • leftChildIndent

      protected int leftChildIndent
      左边距和绘制垂直虚线之间的距离。
    • rightChildIndent

      protected int rightChildIndent
      添加到leftChildIndent以确定将绘制单元格内容的位置的距离。
    • totalChildIndent

      protected int totalChildIndent
      将缩进的总距离。leftChildIndent和rightChildIndent的总和。
    • preferredMinSize

      protected Dimension preferredMinSize
      最小首选大小。
    • lastSelectedRow

      protected int lastSelectedRow
      最后选择的行的索引。
    • tree

      protected JTree tree
      我们将要绘制的组件。
    • currentCellRenderer

      protected transient TreeCellRenderer currentCellRenderer
      用于执行实际单元格绘制的渲染器。
    • createdRenderer

      protected boolean createdRenderer
      如果当前在树中的渲染器是由此实例创建的,则设置为true。
    • cellEditor

      protected transient TreeCellEditor cellEditor
      树的编辑器。
    • createdCellEditor

      protected boolean createdCellEditor
      如果当前在树中的编辑器是由此实例创建的,则设置为true。
    • stopEditingInCompleteEditing

      protected boolean stopEditingInCompleteEditing
      在编辑时,如果shouldSelectCell()返回true表示在编辑之前应选择节点,则将其设置为false,在completeEditing中使用。
    • rendererPane

      protected CellRendererPane rendererPane
      用于绘制TreeCellRenderer。
    • preferredSize

      protected Dimension preferredSize
      完全显示所有节点所需的大小。
    • validCachedPreferredSize

      protected boolean validCachedPreferredSize
      首选大小是否有效?
    • treeState

      protected AbstractLayoutCache treeState
      负责处理大小和展开问题的对象。
    • drawingCache

      protected Hashtable<TreePath,Boolean> drawingCache
      用于最小化绘制垂直线。
    • largeModel

      protected boolean largeModel
      如果正在进行largeModel的优化,则设置为true。不支持此功能的子类可能希望重写createLayoutCache以不返回FixedHeightLayoutCache实例。
    • nodeDimensions

      protected AbstractLayoutCache.NodeDimensions nodeDimensions
      负责告诉TreeState节点所需的大小。
    • treeModel

      protected TreeModel treeModel
      用于确定要显示的内容。
    • treeSelectionModel

      protected TreeSelectionModel treeSelectionModel
      维护选择的模型。
    • depthOffset

      protected int depthOffset
      深度应该偏移多少以正确计算x位置。这取决于根节点是否可见以及根处理是否可见。
    • editingComponent

      protected Component editingComponent
      在编辑时,正在执行实际编辑的组件。
    • editingPath

      protected TreePath editingPath
      正在编辑的路径。
    • editingRow

      protected int editingRow
      正在编辑的行。仅在editingComponent不为null时才应引用。
    • editorHasDifferentSize

      protected boolean editorHasDifferentSize
      如果编辑器与渲染器的大小不同,则设置为true。
  • Constructor Details

    • BasicTreeUI

      public BasicTreeUI()
      构造BasicTreeUI的新实例。
  • Method Details

    • createUI

      public static ComponentUI createUI(JComponent x)
      构造BasicTreeUI的新实例。
      参数:
      x - 一个组件
      返回:
      BasicTreeUI的新实例
    • getHashColor

      protected Color getHashColor()
      返回哈希颜色。
      返回:
      哈希颜色
    • setHashColor

      protected void setHashColor(Color color)
      设置哈希颜色。
      参数:
      color - 哈希颜色
    • setLeftChildIndent

      public void setLeftChildIndent(int newAmount)
      设置左子缩进。
      参数:
      newAmount - 左子缩进
    • getLeftChildIndent

      public int getLeftChildIndent()
      返回左子缩进。
      返回:
      左子缩进
    • setRightChildIndent

      public void setRightChildIndent(int newAmount)
      设置右子缩进。
      参数:
      newAmount - 右子缩进
    • getRightChildIndent

      public int getRightChildIndent()
      返回右子缩进。
      返回:
      右子缩进
    • setExpandedIcon

      public void setExpandedIcon(Icon newG)
      设置展开图标。
      参数:
      newG - 展开图标
    • getExpandedIcon

      public Icon getExpandedIcon()
      返回展开图标。
      返回:
      展开图标
    • setCollapsedIcon

      public void setCollapsedIcon(Icon newG)
      设置折叠图标。
      参数:
      newG - 折叠图标
    • getCollapsedIcon

      public Icon getCollapsedIcon()
      返回折叠图标。
      返回:
      折叠图标
    • setLargeModel

      protected void setLargeModel(boolean largeModel)
      设置largeModel。在绘制树组件中更改largeModel属性时调用。
      参数:
      largeModel - largeModel属性的新值
    • isLargeModel

      protected boolean isLargeModel()
      如果设置了large model,则返回true
      返回:
      如果设置了large model,则返回true
    • setRowHeight

      protected void setRowHeight(int rowHeight)
      设置行高,将此转发到treeState。在绘制树组件中更改rowHeight属性时调用。
      参数:
      rowHeight - rowHeight属性的新值
    • getRowHeight

      protected int getRowHeight()
      返回绘制树组件中每行的高度。如果返回值小于或等于0,则每行的高度由渲染器确定。
      返回:
      每行的高度,以像素为单位
    • setCellRenderer

      protected void setCellRenderer(TreeCellRenderer tcr)
      TreeCellRenderer设置为tcr。这会调用updateRenderer。在绘制树组件中更改cellRenderer属性时调用。
      参数:
      tcr - cellRenderer属性的新值
    • getCellRenderer

      protected TreeCellRenderer getCellRenderer()
      返回用于渲染每个单元格的当前TreeCellRenderer实例。
      返回:
      TreeCellRenderer实例
    • setModel

      protected void setModel(TreeModel model)
      设置TreeModel
      参数:
      model - 新值
    • getModel

      protected TreeModel getModel()
      返回树模型。
      返回:
      树模型
    • setRootVisible

      protected void setRootVisible(boolean newValue)
      将根设置为可见。在绘制树组件中更改rootVisible属性时调用。
      参数:
      newValue - rootVisible属性的新值
    • isRootVisible

      protected boolean isRootVisible()
      返回绘制树组件的根节点是否应显示。
      返回:
      如果树的根节点应显示,则返回true
    • setShowsRootHandles

      protected void setShowsRootHandles(boolean newValue)
      确定是否显示节点处理。在绘制树组件中更改showsRootHandles属性时调用。
      参数:
      newValue - showsRootHandles属性的新值
    • getShowsRootHandles

      protected boolean getShowsRootHandles()
      如果应显示根处理,则返回true
      返回:
      如果应显示根处理,则返回true
    • setCellEditor

      protected void setCellEditor(TreeCellEditor editor)
      设置单元格编辑器。在绘制树组件中更改cellEditor属性时调用。
      参数:
      editor - cellEditor属性的新值
    • getCellEditor

      protected TreeCellEditor getCellEditor()
      返回用于编辑绘制树组件中条目的编辑器,如果树无法编辑,则返回null
      返回:
      TreeCellEditor实例,或null
    • setEditable

      protected void setEditable(boolean newValue)
      配置接收器以允许或不允许编辑。在绘制树组件中更改editable属性时调用。
      参数:
      newValue - editable属性的新值
    • isEditable

      protected boolean isEditable()
      返回绘制的树组件是否应启用编辑。
      返回:
      如果树可编辑,则为true
    • setSelectionModel

      protected void setSelectionModel(TreeSelectionModel newLSM)
      重置选择模型。在绘制的树组件中更改selectionModel属性时安装适当的监听器。
      参数:
      newLSM - selectionModel属性的新值
    • getSelectionModel

      protected TreeSelectionModel getSelectionModel()
      返回当前的TreeSelectionModel实例,它是选择的模型。
      返回:
      TreeSelectionModel实例
    • getPathBounds

      public Rectangle getPathBounds(JTree tree, TreePath path)
      返回包围路径中最后一个项目将绘制到的标签部分的矩形。如果路径中的任何组件当前无效,则返回null。
      指定者:
      getPathBounds 在类 TreeUI
      参数:
      tree - pathJTree
      path - 标识节点的TreePath
      返回:
      包围路径中最后一个项目将绘制到的标签部分的Rectangle,如果路径中的任何组件当前有效,则返回null
    • getPathForRow

      public TreePath getPathForRow(JTree tree, int row)
      返回传入行的路径。如果行不可见,则返回null。
      指定者:
      getPathForRow 在类 TreeUI
      参数:
      tree - 一个JTree对象
      row - 指定行的整数
      返回:
      rowpath或如果row不可见则为null
    • getRowForPath

      public int getRowForPath(JTree tree, TreePath path)
      返回路径中最后一个标识的项目在哪个行可见。如果路径中的任何元素当前不可见,则返回-1。
      指定者:
      getRowForPath 在类 TreeUI
      参数:
      tree - pathJTree
      path - 要查找的TreePath对象
      返回:
      指定的最后一个项目可见的行的整数,如果path中的任何元素当前不可见,则为-1
    • getRowCount

      public int getRowCount(JTree tree)
      返回正在显示的行数。
      指定者:
      getRowCount 在类 TreeUI
      参数:
      tree - 要计算行数的JTree
      返回:
      指定的正在显示的行数的整数
    • getClosestPathForLocation

      public TreePath getClosestPathForLocation(JTree tree, int x, int y)
      返回最接近x,y的节点的路径。如果当前没有任何内容可见,则返回null,否则它将始终返回有效路径。如果需要测试返回的对象是否确切地在x,y处,您应该获取返回路径的边界并将x,y与其进行测试。
      指定者:
      getClosestPathForLocation 在类 TreeUI
      参数:
      tree - 一个JTree对象
      x - 从显示区域左边缘水平像素数的整数
      y - 从显示区域顶部垂直像素数的整数,减去任何顶部边距
      返回:
      最接近x,yTreePath节点,如果当前没有任何内容可见,则为null
    • isEditing

      public boolean isEditing(JTree tree)
      如果树正在编辑,则返回true。正在编辑的项目可以通过getEditingPath()返回。
      指定者:
      isEditing 在类 TreeUI
      参数:
      tree - 一个JTree对象
      返回:
      如果tree正在编辑,则为true
    • stopEditing

      public boolean stopEditing(JTree tree)
      停止当前的编辑会话。如果树没有被编辑,则此操作无效。如果编辑器允许停止编辑会话,则返回true。
      指定者:
      stopEditing 在类 TreeUI
      参数:
      tree - 一个JTree对象
      返回:
      如果编辑器允许停止编辑会话,则为true
    • cancelEditing

      public void cancelEditing(JTree tree)
      取消当前的编辑会话。
      指定者:
      cancelEditing 在类 TreeUI
      参数:
      tree - 一个JTree对象
    • startEditingAtPath

      public void startEditingAtPath(JTree tree, TreePath path)
      选择路径中的最后一个项目并尝试编辑它。如果CellEditor不允许为所选项目进行编辑,则编辑将失败。
      指定者:
      startEditingAtPath 在类 TreeUI
      参数:
      tree - 正在编辑的JTree
      path - 要编辑的TreePath
    • getEditingPath

      public TreePath getEditingPath(JTree tree)
      返回正在编辑的元素的路径。
      指定者:
      getEditingPath 在类 TreeUI
      参数:
      tree - 要返回路径的JTree
      返回:
      包含到tree的路径的TreePath
    • prepareForUIInstall

      protected void prepareForUIInstall()
      在设置tree实例变量之后但在安装任何默认值/监听器之前调用。
    • completeUIInstall

      protected void completeUIInstall()
      在安装所有默认值/监听器之后从installUI调用。
    • installDefaults

      protected void installDefaults()
      安装默认属性。
    • installListeners

      protected void installListeners()
      注册监听器。
    • installKeyboardActions

      protected void installKeyboardActions()
      注册键盘操作。
    • installComponents

      protected void installComponents()
      安装树的子组件,即渲染器窗格。
    • createNodeDimensions

      protected AbstractLayoutCache.NodeDimensions createNodeDimensions()
      创建一个能够确定树中给定节点大小的NodeDimensions实例。
      返回:
      NodeDimensions的一个实例
    • createPropertyChangeListener

      protected PropertyChangeListener createPropertyChangeListener()
      创建负责根据树的更改更新UI的监听器。
      返回:
      PropertyChangeListener的一个实例
    • createMouseListener

      protected MouseListener createMouseListener()
      创建负责根据鼠标事件更新选择的监听器。
      返回:
      MouseListener的一个实例
    • createFocusListener

      protected FocusListener createFocusListener()
      创建负责在失去/获得焦点时更新显示的监听器。
      返回:
      FocusListener的一个实例
    • createKeyListener

      protected KeyListener createKeyListener()
      创建负责从树获取键事件的监听器。
      返回:
      KeyListener的一个实例
    • createSelectionModelPropertyChangeListener

      protected PropertyChangeListener createSelectionModelPropertyChangeListener()
      创建负责从选择模型获取属性更改事件的监听器。
      返回:
      PropertyChangeListener的一个实例
    • createTreeSelectionListener

      protected TreeSelectionListener createTreeSelectionListener()
      创建负责根据选择更改方法更新显示的监听器。
      返回:
      TreeSelectionListener的一个实例
    • createCellEditorListener

      protected CellEditorListener createCellEditorListener()
      创建处理当前编辑器事件的监听器。
      返回:
      CellEditorListener的一个实例
    • createComponentListener

      protected ComponentListener createComponentListener()
      创建并返回一个新的ComponentHandler。这用于大型模型,当组件移动时将validCachedPreferredSize标记为无效。
      返回:
      ComponentListener的一个实例
    • createTreeExpansionListener

      protected TreeExpansionListener createTreeExpansionListener()
      创建并返回负责在节点展开状态更改时更新树状态的对象。
      返回:
      TreeExpansionListener的一个实例
    • createLayoutCache

      protected AbstractLayoutCache createLayoutCache()
      创建负责管理展开内容以及节点大小的对象。
      返回:
      负责管理展开内容的对象
    • createCellRendererPane

      protected CellRendererPane createCellRendererPane()
      返回渲染器组件放置的渲染器窗格。
      返回:
      CellRendererPane的一个实例
    • createDefaultCellEditor

      protected TreeCellEditor createDefaultCellEditor()
      创建一个默认的单元格编辑器。
      返回:
      一个默认的单元格编辑器
    • createDefaultCellRenderer

      protected TreeCellRenderer createDefaultCellRenderer()
      返回用于对每个节点进行盖章的默认单元格渲染器。
      返回:
      TreeCellRenderer的一个实例
    • createTreeModelListener

      protected TreeModelListener createTreeModelListener()
      返回一个可以在模型更改时更新树的侦听器。
      返回:
      TreeModelListener的一个实例。
    • prepareForUIUninstall

      protected void prepareForUIUninstall()
      在卸载UI之前调用。
    • completeUIUninstall

      protected void completeUIUninstall()
      卸载UI。
    • uninstallDefaults

      protected void uninstallDefaults()
      卸载默认属性。
    • uninstallListeners

      protected void uninstallListeners()
      注销侦听器。
    • uninstallKeyboardActions

      protected void uninstallKeyboardActions()
      注销键盘操作。
    • uninstallComponents

      protected void uninstallComponents()
      卸载渲染器窗格。
    • getBaseline

      public int getBaseline(JComponent c, int width, int height)
      返回基线。
      覆盖:
      在类中覆盖getBaseline ComponentUI
      参数:
      c - 请求基线的JComponent
      width - 获取基线的宽度
      height - 获取基线的高度
      返回:
      基线或值< 0,表示没有合理的基线
      抛出:
      NullPointerException - 如果cnull
      IllegalArgumentException - 如果宽度或高度< 0
      自:
      1.6
      参见:
    • getBaselineResizeBehavior

      public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
      返回一个枚举,指示组件大小更改时基线的变化方式。
      覆盖:
      在类中覆盖getBaselineResizeBehavior ComponentUI
      参数:
      c - 要返回基线调整行为的JComponent
      返回:
      一个枚举,指示组件大小更改时基线的变化方式
      抛出:
      NullPointerException - 如果cnull
      自:
      1.6
      参见:
    • isDropLine

      protected boolean isDropLine(JTree.DropLocation loc)
      告诉是否应该通过节点之间的线来指示DropLocation。这适用于javax.swing.DropMode.INSERTjavax.swing.DropMode.ON_OR_INSERT拖放模式。
      参数:
      loc - 一个DropLocation
      返回:
      如果应该将拖放位置显示为一条线,则返回true
      自:
      1.7
    • paintDropLine

      protected void paintDropLine(Graphics g)
      绘制拖放线。
      参数:
      g - 要绘制的Graphics对象
      自:
      1.7
    • getDropLineRect

      protected Rectangle getDropLineRect(JTree.DropLocation loc)
      返回拖放线的未绑定框。
      参数:
      loc - 一个DropLocation
      返回:
      拖放线的边界框
      自:
      1.7
    • paintHorizontalPartOfLeg

      protected void paintHorizontalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
      绘制腿的水平部分。接收者不应修改clipBoundsinsets

      注意:parentRow如果根节点不可见,则可能为-1。

      参数:
      g - 一个图形上下文
      clipBounds - 一个裁剪的矩形
      insets - 插图
      bounds - 一个边界矩形
      path - 一个树路径
      row - 一行
      isExpanded - 如果路径已展开,则为true
      hasBeenExpanded - 如果路径已展开,则为true
      isLeaf - 如果路径是叶子,则为true
    • paintVerticalPartOfLeg

      protected void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, TreePath path)
      绘制腿的垂直部分。接收者不应修改clipBoundsinsets
      参数:
      g - 一个图形上下文
      clipBounds - 一个裁剪的矩形
      insets - 插图
      path - 一个树路径
    • paintExpandControl

      protected void paintExpandControl(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
      绘制行的展开(切换)部分。接收者不应修改clipBoundsinsets
      参数:
      g - 一个图形上下文
      clipBounds - 一个裁剪的矩形
      insets - 插图
      bounds - 一个边界矩形
      path - 一个树路径
      row - 一行
      isExpanded - 如果路径已展开,则为true
      hasBeenExpanded - 如果路径已展开,则为true
      isLeaf - 如果行是叶子,则为true
    • paintRow

      protected void paintRow(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
      绘制行的渲染器部分。接收者不应修改clipBoundsinsets
      参数:
      g - 一个图形上下文
      clipBounds - 一个裁剪的矩形
      insets - 插图
      bounds - 一个边界矩形
      path - 一个树路径
      row - 一行
      isExpanded - 如果路径已展开,则为true
      hasBeenExpanded - 如果路径已展开,则为true
      isLeaf - 如果路径是叶子,则为true
    • shouldPaintExpandControl

      protected boolean shouldPaintExpandControl(TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
      如果应为指定行绘制展开(切换)控件,则返回true
      参数:
      path - 一个树路径
      row - 一行
      isExpanded - 如果路径已展开,则为true
      hasBeenExpanded - 如果路径已展开,则为true
      isLeaf - 如果行是叶子,则为true
      返回:
      如果应为指定行绘制展开(切换)控件,则返回true
    • paintVerticalLine

      protected void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom)
      绘制垂直线。
      参数:
      g - 一个图形上下文
      c - 一个组件
      x - X坐标
      top - Y1坐标
      bottom - Y2坐标
    • paintHorizontalLine

      protected void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right)
      绘制水平线。
      参数:
      g - 一个图形上下文
      c - 一个组件
      y - Y坐标
      left - X1坐标
      right - X2坐标
    • getVerticalLegBuffer

      protected int getVerticalLegBuffer()
      默认情况下,节点之间的腿的垂直元素从父节点的底部开始。此方法使腿从下面开始。
      返回:
      垂直腿缓冲区
    • getHorizontalLegBuffer

      protected int getHorizontalLegBuffer()
      默认情况下,节点之间的腿的水平元素从子节点的左侧右侧开始。此方法使腿在此之前结束。
      返回:
      水平腿缓冲区
    • drawCentered

      protected void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y)
      在(x,y)处绘制icon的中心。
      参数:
      c - 一个组件
      graphics - 一个图形上下文
      icon - 一个图标
      x - X坐标
      y - Y坐标
    • drawDashedHorizontalLine

      protected void drawDashedHorizontalLine(Graphics g, int y, int x1, int x2)
      绘制水平虚线。假定x1 <= x2。如果x1大于x2,则该方法不绘制任何内容。
      参数:
      g - 一个Graphics的实例
      y - Y坐标
      x1 - X1坐标
      x2 - X2坐标
    • drawDashedVerticalLine

      protected void drawDashedVerticalLine(Graphics g, int x, int y1, int y2)
      绘制垂直虚线。假定y1 <= y2。如果y1大于y2,则该方法不绘制任何内容。
      参数:
      g - 一个Graphics的实例
      x - X坐标
      y1 - Y1坐标
      y2 - Y2坐标
    • getRowX

      protected int getRowX(int row, int depth)
      返回在x轴上渲染特定行的位置。返回值不包括JTree上指定的任何Insets。不检查行或深度的有效性,假定它是正确的,如果行或深度与树的不匹配,则不会抛出异常。
      参数:
      row - 要返回x位置的行
      depth - 行的深度
      返回:
      缩进给定行的量。
      自:
      1.5
    • updateLayoutCacheExpandedNodes

      protected void updateLayoutCacheExpandedNodes()
      使JTree中展开的所有节点在LayoutCache中展开。这将使用根路径调用updateExpandedDescendants。
    • updateExpandedDescendants

      protected void updateExpandedDescendants(TreePath path)
      通过从树中获取展开的后代并转发到树状态,更新path的所有后代的展开状态。
      参数:
      path - 一个树路径
    • getLastChildPath

      protected TreePath getLastChildPath(TreePath parent)
      返回到parent的最后一个子节点的路径。
      参数:
      parent - 一个树路径
      返回:
      parent的最后一个子节点的路径
    • updateDepthOffset

      protected void updateDepthOffset()
      更新每个深度应该偏移多少。
    • updateCellEditor

      protected void updateCellEditor()
      Updates the cellEditor based on the editability of the JTree that we're contained in. If the tree is editable but doesn't have a cellEditor, a basic one will be used.
    • updateRenderer

      protected void updateRenderer()
      Messaged from the tree we're in when the renderer has changed.
    • configureLayoutCache

      protected void configureLayoutCache()
      根据我们为其提供外观的树重置TreeState实例。
    • updateSize

      protected void updateSize()
      将缓存的大小标记为无效,并向树发送treeDidChange消息。
    • updateCachedPreferredSize

      protected void updateCachedPreferredSize()
      更新preferredSize实例变量,该变量从getPreferredSize()返回。

      对于从左到右的方向,大小是根据当前的AbstractLayoutCache确定的。对于RTL方向,首选大小变为宽度减去最小x位置。

    • pathWasExpanded

      protected void pathWasExpanded(TreePath path)
      VisibleTreeNode扩展后发送的消息。
      参数:
      path - 树路径
    • pathWasCollapsed

      protected void pathWasCollapsed(TreePath path)
      VisibleTreeNode折叠后发送的消息。
      参数:
      path - 树路径
    • ensureRowsAreVisible

      protected void ensureRowsAreVisible(int beginRow, int endRow)
      确保由beginRowendRow标识的行可见。
      参数:
      beginRow - 起始行
      endRow - 结束行
    • setPreferredMinSize

      public void setPreferredMinSize(Dimension newSize)
      设置首选最小大小。
      参数:
      newSize - 新的首选大小
    • getPreferredMinSize

      public Dimension getPreferredMinSize()
      返回最小首选大小。
      返回:
      最小首选大小
    • getPreferredSize

      public Dimension getPreferredSize(JComponent c)
      返回表示树的首选大小,这是getPreferredSize(c, true)的覆盖方法。
      覆盖:
      getPreferredSize 在类中 ComponentUI
      参数:
      c - 一个组件
      返回:
      表示组件中树的首选大小
      另请参阅:
    • getPreferredSize

      public Dimension getPreferredSize(JComponent c, boolean checkConsistency)
      返回表示树在c中的首选大小。如果checkConsistencytrue,首先会发送消息checkConsistency
      参数:
      c - 一个组件
      checkConsistency - 如果为true,则检查一致性
      返回:
      表示组件中树的首选大小
    • getMinimumSize

      public Dimension getMinimumSize(JComponent c)
      返回此组件的最小大小。将是最小首选大小或0, 0。
      覆盖:
      getMinimumSize 在类中 ComponentUI
      参数:
      c - 正在查询其最小大小的组件;通常会忽略此参数,但如果UI对象是无状态的并且由多个组件共享,则可能会使用
      返回:
      一个Dimension对象或null
      另请参阅:
    • getMaximumSize

      public Dimension getMaximumSize(JComponent c)
      返回此组件的最大大小,如果实例当前在JTree中,则将是首选大小,否则为0, 0。
      覆盖:
      getMaximumSize 在类中 ComponentUI
      参数:
      c - 正在查询其最大大小的组件;通常会忽略此参数,但如果UI对象是无状态的并且由多个组件共享,则可能会使用
      返回:
      一个Dimension对象或null
      另请参阅:
    • completeEditing

      protected void completeEditing()
      发送消息以停止编辑会话。如果接收者提供外观的UI从getInvokesStopCellEditing返回true,则会在当前编辑器上调用stopCellEditing。然后,使用false、true、false消息completeEditing,以取消任何挂起的编辑。
    • completeEditing

      protected void completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)
      停止编辑会话。如果messageStoptrue,则会向编辑器发送stopEditing消息,如果messageCanceltrue,则会向编辑器发送cancelEditing消息。如果messageTreetrue,则会向treeModel发送valueForPathChanged消息。
      参数:
      messageStop - 停止编辑的消息
      messageCancel - 取消编辑的消息
      messageTree - 树的消息
    • startEditing

      protected boolean startEditing(TreePath path, MouseEvent event)
      如果存在cellEditor并且shouldSelectCell返回true,则为节点开始编辑。

      这假定路径有效且可见。

      参数:
      path - 树路径
      event - 鼠标事件
      返回:
      如果编辑成功,则为true
    • checkForClickInExpandControl

      protected void checkForClickInExpandControl(TreePath path, int mouseX, int mouseY)
      如果mouseXmouseYrow的展开/折叠区域内,则会切换该行。
      参数:
      path - 树路径
      mouseX - X坐标
      mouseY - Y坐标
    • isLocationInExpandControl

      protected boolean isLocationInExpandControl(TreePath path, int mouseX, int mouseY)
      如果mouseXmouseY落在用于展开/折叠节点的row区域,并且row处的节点不表示叶子,则返回true
      参数:
      path - 树路径
      mouseX - X坐标
      mouseY - Y坐标
      返回:
      如果鼠标光标落在用于展开/折叠节点的行区域内且节点不是叶子,则返回true
    • handleExpandControlClick

      protected void handleExpandControlClick(TreePath path, int mouseX, int mouseY)
      当用户单击特定行时发送的消息,这会调用toggleExpandState
      参数:
      path - 树路径
      mouseX - X坐标
      mouseY - Y坐标
    • toggleExpandState

      protected void toggleExpandState(TreePath path)
      如果路径未展开,则展开路径,如果已展开,则折叠行。如果展开路径并且JTree在展开时滚动,则会调用ensureRowsAreVisible以滚动尽可能多的子项为可见(尝试滚动到路径的最后一个可见后代)。
      参数:
      path - 树路径
    • isToggleSelectionEvent

      protected boolean isToggleSelectionEvent(MouseEvent event)
      返回true表示鼠标事件在节点上,应仅切换鼠标下的行的选择。
      参数:
      event - 鼠标事件
      返回:
      如果鼠标事件在节点上应切换选择,则返回true
    • isMultiSelectEvent

      protected boolean isMultiSelectEvent(MouseEvent event)
      返回true表示鼠标事件在节点上,应从锚点开始选择。
      参数:
      event - 鼠标事件
      返回:
      如果鼠标事件在节点上应从锚点开始选择,则返回true
    • isToggleEvent

      protected boolean isToggleEvent(MouseEvent event)
      返回true表示鼠标事件在节点上,应根据事件切换鼠标下的行。这在checkForClickInExpandControl之后调用,意味着位置不在展开(切换)控件中。
      参数:
      event - 鼠标事件
      返回:
      如果鼠标下的行应根据事件切换,则返回true
    • selectPathForEvent

      protected void selectPathForEvent(TreePath path, MouseEvent event)
      根据MouseEvent在特定行上的操作更新选择。如果事件是切换选择事件,则行将被选中或取消选中。如果事件标识为多选事件,则从锚点更新选择。否则,将选择行,并且如果事件指定切换事件,则展开/折叠行。
      参数:
      path - 选定的路径
      event - 鼠标事件
    • isLeaf

      protected boolean isLeaf(int row)
      如果row处的节点是叶子,则返回true
      参数:
      row - 一行
      返回:
      如果row处的节点是叶子,则返回true
    • updateLeadSelectionRow

      protected void updateLeadSelectionRow()
      更新选择的主行。
      自1.7起
      1.7
    • getLeadSelectionRow

      protected int getLeadSelectionRow()
      返回选择的主行。
      返回:
      选择的主行
      自1.7起
      1.7