Module  java.desktop

Class BasicTreeUI

    • 字段详细信息

      • 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
        编辑时设置为false,shouldSelectCell()返回true表示在编辑之前应选择节点,用于completeEditing。
      • rendererPane

        protected CellRendererPane rendererPane
        用于绘制TreeCellRenderer。
      • preferredSize

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

        protected boolean validCachedPreferredSize
        preferredSize是否有效?
      • treeState

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

        protected boolean largeModel
        如果对largeModel进行优化,则为true。 不支持此类的子类可能希望覆盖createLayoutCache以不返回FixedHeightLayoutCache实例。
      • 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。
    • 构造方法详细信息

      • BasicTreeUI

        public BasicTreeUI​()
        构造一个新的实例 BasicTreeUI
    • 方法详细信息

      • 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)
        如果需要,更新componentListener。
        参数
        largeModel - 新值
      • isLargeModel

        protected boolean isLargeModel​()
        如果设置大型号,则返回 true
        结果
        true如果设置大型号
      • setRowHeight

        protected void setRowHeight​(int rowHeight)
        设置行高,将其转发到treeState。
        参数
        rowHeight - 行高
      • getRowHeight

        protected int getRowHeight​()
        返回行高。
        结果
        行高
      • setCellRenderer

        protected void setCellRenderer​(TreeCellRenderer tcr)
        TreeCellRenderer设为tcr 这将调用updateRenderer
        参数
        tcr - 新价值
      • getCellRenderer

        protected TreeCellRenderer getCellRenderer​()
        返回 currentCellRenderer ,这将是树形渲染器,或 defaultCellRenderer ,它永远不是空的。
        结果
        一个 TreeCellRenderer
      • setModel

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

        protected TreeModel getModel​()
        返回树模型。
        结果
        树模型
      • setRootVisible

        protected void setRootVisible​(boolean newValue)
        将根设置为可见。
        参数
        newValue - 新值
      • isRootVisible

        protected boolean isRootVisible​()
        如果树根可见,则返回 true
        结果
        如果树根可见, true
      • setShowsRootHandles

        protected void setShowsRootHandles​(boolean newValue)
        确定是否显示节点句柄。
        参数
        newValue - 新值
      • getShowsRootHandles

        protected boolean getShowsRootHandles​()
        如果要显示根句柄,则返回 true
        结果
        true如果要显示根控柄
      • setCellEditor

        protected void setCellEditor​(TreeCellEditor editor)
        设置单元格编辑器。
        参数
        editor - 新的单元格编辑器
      • getCellEditor

        protected TreeCellEditor getCellEditor​()
        返回一个 TreeCellEditor的实例。
        结果
        一个 TreeCellEditor的实例
      • setEditable

        protected void setEditable​(boolean newValue)
        将接收器配置为允许或不允许编辑。
        参数
        newValue - 新的价值
      • isEditable

        protected boolean isEditable​()
        如果树是可编辑的,则返回 true
        结果
        true如果树是可编辑的
      • setSelectionModel

        protected void setSelectionModel​(TreeSelectionModel newLSM)
        重置选择模型。 模型上安装了适当的监听器。
        参数
        newLSM - 新的选择模式
      • getSelectionModel

        protected TreeSelectionModel getSelectionModel​()
        返回树选择模型。
        结果
        树选择模型
      • getPathBounds

        public Rectangle getPathBounds​(JTree tree,
                                       TreePath path)
        返回包围路径中最后一个项目将被绘制的标签部分的Rectangle。 如果路径中的任何组件当前有效,则返回null。
        Specified by:
        getPathBounds中的 TreeUI
        参数
        tree - JTreepath
        path - 识别节点的 TreePath
        结果
        如果路径中的任何组件当前是有效的,则包含标签部分的 Rectangle将路径中的最后一个项目绘制到 null
      • getPathForRow

        public TreePath getPathForRow​(JTree tree,
                                      int row)
        返回在行中传递的路径。 如果行不可见返回null。
        Specified by:
        getPathForRowTreeUI
        参数
        tree - a JTree对象
        row - 一个指定行的整数
        结果
        pathrownull如果 row不可见
      • getRowForPath

        public int getRowForPath​(JTree tree,
                                 TreePath path)
        返回在路径中识别的最后一个项目可见的行。 如果路径中的任何元素当前不可见,则返回-1。
        Specified by:
        getRowForPathTreeUI
        参数
        tree - JTreepath
        path - 要查看的 TreePath对象
        结果
        一个整数,指定最后一个可识别项目的行,-1,如果 path中的任何元素当前不可见
      • getRowCount

        public int getRowCount​(JTree tree)
        返回正在显示的行数。
        Specified by:
        getRowCountTreeUI
        参数
        tree - 要计数行数的 JTree
        结果
        一个指定要显示的行数的整数
      • getClosestPathForLocation

        public TreePath getClosestPathForLocation​(JTree tree,
                                                  int x,
                                                  int y)
        返回最接近x,y的节点的路径。 如果当前没有任何可见的内容,则返回null,否则返回一个有效的路径。 如果您需要测试返回的对象是否完全在x处,那么您应该获得返回路径的边界,并对其进行测试x,y。
        Specified by:
        getClosestPathForLocationTreeUI
        参数
        tree - a JTree对象
        x - 从显示区域的左边缘水平地提供像素数的整数
        y - 从显示区域顶部垂直排列的像素数减去任何顶部边距的整数
        结果
        TreePath最接近节点 x,y或者 null如果当前没有任何可见
      • isEditing

        public boolean isEditing​(JTree tree)
        如果正在编辑树,则返回true。 正在编辑的项目可以由getEditingPath()返回。
        Specified by:
        isEditingTreeUI
        参数
        tree - 一个 JTree对象
        结果
        如果正在编辑 tree则为true
      • stopEditing

        public boolean stopEditing​(JTree tree)
        停止当前编辑会话。 如果树未被编辑,则不起作用。 如果编辑器允许编辑会话停止,则返回true。
        Specified by:
        stopEditingTreeUI
        参数
        tree - 一个 JTree对象
        结果
        如果编辑器允许编辑会话停止,则为true
      • cancelEditing

        public void cancelEditing​(JTree tree)
        取消当前编辑会话。
        Specified by:
        cancelEditingTreeUI
        参数
        tree - a JTree对象
      • startEditingAtPath

        public void startEditingAtPath​(JTree tree,
                                       TreePath path)
        选择路径中的最后一个项目并尝试编辑它。 如果CellEditor不允许选择的项目,编辑将失败。
        Specified by:
        startEditingAtPathTreeUI
        参数
        tree - 正在编辑的 JTree
        path - 要编辑的 TreePath
      • getEditingPath

        public TreePath getEditingPath​(JTree tree)
        返回正在编辑的元素的路径。
        Specified by:
        getEditingPathTreeUI
        参数
        tree - 要返回路径的 JTree
        结果
        一个 TreePath包含的路径到 tree
      • installUI

        public void installUI​(JComponent c)
        描述从类复制: ComponentUI
        适当地配置指定的组件的外观和感觉。 当安装ComponentUI实例作为指定组件上的UI委托时,将调用此方法。 该方法应该完全配置组件的外观,包括以下内容:
        1. 为组件上的颜色,字体,边框,图标,不透明度等安装默认属性值。 只要有可能,由客户端程序初始化的属性值应该被重写。
        2. 如有必要,请在组件上安装LayoutManager
        3. 创建/添加任何所需的子组件到组件。
        4. 在组件上创建/安装事件监听器。
        5. 在组件上创建/安装PropertyChangeListener ,以便适当地检测和响应组件属性的更改。
        6. 在组件上安装键盘UI(助记符,遍历等)。
        7. 初始化任何适当的实例数据。
        重写:
        installUIComponentUI
        参数
        c - 正在安装此UI c的组件
        另请参见:
        ComponentUI.uninstallUI(javax.swing.JComponent)JComponent.setUI(javax.swing.plaf.ComponentUI)JComponent.updateUI()
      • 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树中给定节点的大小。
        结果
        一个 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​()
        当节点扩展状态更改时,创建并返回负责更新treestate的对象。
        结果
        一个实例的 TreeExpansionListener
      • createLayoutCache

        protected AbstractLayoutCache createLayoutCache​()
        创建负责管理扩展内容的对象以及节点的大小。
        结果
        负责管理扩展的对象
      • createCellRendererPane

        protected CellRendererPane createCellRendererPane​()
        返回渲染器组件所在的渲染器窗格。
        结果
        一个实例的 CellRendererPane
      • createDefaultCellEditor

        protected TreeCellEditor createDefaultCellEditor​()
        创建默认单元格编辑器。
        结果
        默认单元格编辑器
      • createDefaultCellRenderer

        protected TreeCellRenderer createDefaultCellRenderer​()
        返回用于执行每个节点冲压的默认单元格渲染器。
        结果
        一个 TreeCellRenderer
      • createTreeModelListener

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

        public void uninstallUI​(JComponent c)
        描述从类别复制: ComponentUI
        installUI反转在指定组件上完成的配置。 当这个UIComponent实例作为指定组件的UI委托被删除时,将调用此方法。 该方法应该撤消在installUI执行的配置,小心使JComponent实例处于干净状态(无外部侦听器,外观特定属性对象等)。 这应该包括以下内容:
        1. 从组件中删除任何UI集边框。
        2. 删除组件上的任何UI集布局管理器。
        3. 从组件中删除任何添加了UI的子组件。
        4. 从组件中删除任何UI添加的事件/属性侦听器。
        5. 从组件中删除任何UI安装的键盘UI。
        6. 对任何分配的实例数据对象进行空白以允许GC。
        重写:
        uninstallUIComponentUI
        参数
        c - 从中删除此UI c的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
        另请参见:
        ComponentUI.installUI(javax.swing.JComponent)JComponent.updateUI()
      • 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​()
        卸载渲染器窗格。
      • paint

        public void paint​(Graphics g,
                          JComponent c)
        描述从类别复制: ComponentUI
        适当地涂抹指定的组件的外观和感觉。 当正在绘制指定的组件时,将从ComponentUI.update方法调用此方法。 子类应该覆盖此方法,并使用指定的Graphics对象来呈现组件的内容。
        重写:
        paintComponentUI
        参数
        g - 要绘画的 Graphics上下文
        c - 正在涂漆的部件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用
        另请参见:
        ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
      • isDropLine

        protected boolean isDropLine​(JTree.DropLocation loc)
        告诉一个DropLocation是否应该由节点之间的一行指示。 这是针对javax.swing.DropMode.INSERTjavax.swing.DropMode.ON_OR_INSERT丢弃模式。
        参数
        loc - a DropLocation
        结果
        true如果放置位置应显示为一行
        从以下版本开始:
        1.7
      • paintDropLine

        protected void paintDropLine​(Graphics g)
        画下线。
        参数
        g - Graphics对象绘制
        从以下版本开始:
        1.7
      • getDropLineRect

        protected Rectangle getDropLineRect​(JTree.DropLocation loc)
        返回下拉线的无界框。
        参数
        loc - a 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

        参数
        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如果要为指定的行绘制展开(toggle)控件
      • 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​()
        基于我们包含的JTree的可编辑性,更新cellEditor。如果树是可编辑的,但没有cellEditor,则将使用基本的。
      • updateRenderer

        protected void updateRenderer​()
        当渲染器发生变化时,我们从树中消失。
      • 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消息 VisibleTreeNode之后就已经扩大了。
        参数
        path - 树路径
      • pathWasCollapsed

        protected void pathWasCollapsed​(TreePath path)
        VisibleTreeNode后的 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,
                                          boolean checkConsistency)
        返回在c中表示树的首选大小。 如果checkConsistencytrue checkConsistency是首先消息。
        参数
        c - 一个组件
        checkConsistency - 如果检查 true一致性
        结果
        表示组件中树的首选大小
      • completeEditing

        protected void completeEditing​()
        消息停止编辑会话。 如果接收者的UI为getInvokesStopCellEditing提供了返回true的getInvokesStopCellEditing ,那么stopCellEditing将在当前编辑器上调用。 那么完成编辑将会被false,true,false消除,以取消任何延续的编辑。
      • completeEditing

        protected void completeEditing​(boolean messageStop,
                                       boolean messageCancel,
                                       boolean messageTree)
        停止编辑会话。 如果messageStoptrue编辑器与stopEditing ,如果messageCanceltrue编辑器与cancelEditing消息。 如果messageTreetruetreeModel的传递消息与valueForPathChanged
        参数
        messageStop - 停止编辑的消息
        messageCancel - 消息取消编辑
        messageTree - 给树的消息
      • startEditing

        protected boolean startEditing​(TreePath path,
                                       MouseEvent event)
        如果有cellEditorshouldSelectCell返回true将开始编辑节点。

        这假定该路径是有效和可见的。

        参数
        path - 树路径
        event - 一个鼠标事件
        结果
        true如果编辑成功
      • checkForClickInExpandControl

        protected void checkForClickInExpandControl​(TreePath path,
                                                    int mouseX,
                                                    int mouseY)
        如果 mouseXmouseY都在的展开/折叠区域 row ,这将切换行。
        参数
        path - 树路径
        mouseX - X坐标
        mouseY - 一个Y坐标
      • isLocationInExpandControl

        protected boolean isLocationInExpandControl​(TreePath path,
                                                    int mouseX,
                                                    int mouseY)
        如果 mouseXmouseY落在用于展开/折叠节点的行的区域中,则返回 true ,而在 row处的节点不表示叶。
        参数
        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后调用的,这意味着位置不在展开(toggle)控件中。
        参数
        event - 一个鼠标事件
        结果
        true如果鼠标下的行应该被切换
      • selectPathForEvent

        protected void selectPathForEvent​(TreePath path,
                                          MouseEvent event)
        通过特定行来更新基于MouseEvent的选择。 如果事件是切换选择事件,则该行被选中或取消选择。 如果事件识别多选择事件,则从锚点更新选择。 否则,行被选中,如果事件指定了一个切换事件,则该行被展开/折叠。
        参数
        path - 所选路径
        event - 鼠标事件
      • isLeaf

        protected boolean isLeaf​(int row)
        返回 true如果在节点 row是叶。
        参数
        row - 一排
        结果
        true如果节点在 row是叶
      • updateLeadSelectionRow

        protected void updateLeadSelectionRow​()
        更新选择的首行。
        从以下版本开始:
        1.7
      • getLeadSelectionRow

        protected int getLeadSelectionRow​()
        返回选择的首行。
        结果
        选择引导行
        从以下版本开始:
        1.7