JavaTM Platform
Standard Ed. 6

javax.swing.plaf.basic
类 BasicTreeUI

java.lang.Object
  继承者 javax.swing.plaf.ComponentUI
      继承者 javax.swing.plaf.TreeUI
          继承者 javax.swing.plaf.basic.BasicTreeUI
直接已知子类:
MetalTreeUI

public class BasicTreeUI
extends TreeUI

层次数据结构的基本 L&F。


嵌套类摘要
 class BasicTreeUI.CellEditorHandler
          侦听器负责获取单元格编辑事件并相应地更新树。
 class BasicTreeUI.ComponentHandler
          滚动时更新首选大小(如果需要)。
 class BasicTreeUI.FocusHandler
          失去/获得焦点时重绘前导选择行。
 class BasicTreeUI.KeyHandler
          用于获取多个按键事件以适当生成事件。
 class BasicTreeUI.MouseHandler
          TreeMouseListener 负责基于鼠标事件更新选择。
 class BasicTreeUI.MouseInputHandler
          在将鼠标释放到用于构造 MouseInputHandler 的目的地之前,它一直负责传递所有鼠标事件,包括鼠标移动事件。
 class BasicTreeUI.NodeDimensionsHandler
          负责获取节点大小的类,其方法被转发到 BasicTreeUI 方法。
 class BasicTreeUI.PropertyChangeHandler
          树的 PropertyChangeListener。
 class BasicTreeUI.SelectionModelPropertyChangeHandler
          TreeSelectionModel 上的侦听器,如果模型的任何属性发生更改,则重置行选择。
 class BasicTreeUI.TreeCancelEditingAction
          执行操作时调用 cancelEditing 的 ActionListener。
 class BasicTreeUI.TreeExpansionHandler
          更新 TreeState 以响应节点的展开/折叠。
 class BasicTreeUI.TreeHomeAction
          TreeHomeAction 用于处理 end/home 动作。
 class BasicTreeUI.TreeIncrementAction
          TreeIncrementAction 用于处理向上/向下操作。
 class BasicTreeUI.TreeModelHandler
          将所有 TreeModel 事件转发到 TreeState。
 class BasicTreeUI.TreePageAction
          TreePageAction 处理向上翻页和向下翻页事件。
 class BasicTreeUI.TreeSelectionHandler
          侦听选择模型中的更改并相应地更新显示。
 class BasicTreeUI.TreeToggleAction
          对于第一个选定行展开将被切换。
 class BasicTreeUI.TreeTraverseAction
          TreeTraverseAction 是用于向左/向右方向键的动作。
 
字段摘要
protected  TreeCellEditor cellEditor
          树的编辑器。
protected  Icon collapsedIcon
           
protected  boolean createdCellEditor
          如果当前位于树中的编辑器由此实例创建,则设置为 true。
protected  boolean createdRenderer
          如果当前在树中使用的渲染器由此实例创建,则设置为 true。
protected  TreeCellRenderer currentCellRenderer
          要用于进行实际单元格绘制的渲染器。
protected  int depthOffset
          要正确计算 x 位置应该偏移的深度。
protected  Hashtable<TreePath,Boolean> drawingCache
          用于最小化垂直线的绘制。
protected  Component editingComponent
          编辑时,它将是进行实际编辑的 Component。
protected  TreePath editingPath
          要编辑的路径。
protected  int editingRow
          要编辑的行。
protected  boolean editorHasDifferentSize
          如果编辑器的大小不同于渲染器,则设置为 true。
protected  Icon expandedIcon
           
protected  boolean largeModel
          如果对 largeModel 进行优化,则为 True。
protected  int lastSelectedRow
          上一次选中行的索引。
protected  int leftChildIndent
          从左页边空白到将绘制垂直虚线的位置之间的距离。
protected  AbstractLayoutCache.NodeDimensions nodeDimensions
          负责告知 TreeState 节点所需的大小。
protected  Dimension preferredMinSize
          最小首选大小。
protected  Dimension preferredSize
          完全显示所有节点所需的大小。
protected  CellRendererPane rendererPane
          用于绘制 TreeCellRenderer。
protected  int rightChildIndent
          添加到 leftChildIndent 以确定将绘制单元格内容的位置的距离。
protected  boolean stopEditingInCompleteEditing
          编辑时设置为 false,shouldSelectCell() 返回 true 表示应该在编辑前选中节点,在 completeEditing 中使用该字段。
protected  int totalChildIndent
          将缩进的总距离。
protected  JTree tree
          要在其中进行绘制的组件。
protected  TreeModel treeModel
          用于确定要显示的内容。
protected  TreeSelectionModel treeSelectionModel
          维护选择的模型。
protected  AbstractLayoutCache treeState
          负责处理大小和展开问题的对象。
protected  boolean validCachedPreferredSize
          preferredSize 是否有效?
 
构造方法摘要
BasicTreeUI()
           
 
方法摘要
 void cancelEditing(JTree tree)
          取消当前编辑会话。
protected  void checkForClickInExpandControl(TreePath path, int mouseX, int mouseY)
          如果 mouseXmouseY 位于 row 的展开/折叠区域内,则此方法将切换行。
protected  void completeEditing()
          传递消息以停止编辑会话。
protected  void completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)
          停止编辑会话。
protected  void completeUIInstall()
          在安装所有默认值/侦听器之后根据 installUI 调用。
protected  void completeUIUninstall()
           
protected  void configureLayoutCache()
          基于为其提供外观的树重置 TreeState 实例。
protected  CellEditorListener createCellEditorListener()
          创建在当前编辑器中处理事件的侦听器。
protected  CellRendererPane createCellRendererPane()
          返回用于放置渲染器组件的渲染器窗格。
protected  ComponentListener createComponentListener()
          创建并返回新的 ComponentHandler。
protected  TreeCellEditor createDefaultCellEditor()
          创建默认单元格编辑器。
protected  TreeCellRenderer createDefaultCellRenderer()
          返回用于为每个节点添加标志的默认单元格渲染器。
protected  FocusListener createFocusListener()
          创建失去/获取焦点时负责更新显示的侦听器。
protected  KeyListener createKeyListener()
          创建负责从树获取键事件的侦听器。
protected  AbstractLayoutCache createLayoutCache()
          创建负责管理展开内容及节点大小的对象。
protected  MouseListener createMouseListener()
          创建负责基于鼠标事件更新选择的侦听器。
protected  AbstractLayoutCache.NodeDimensions createNodeDimensions()
          创建能够确定树中给定节点大小的 NodeDimensions 的实例。
protected  PropertyChangeListener createPropertyChangeListener()
          创建负责基于树的更改方式更新 UI 的侦听器。
protected  PropertyChangeListener createSelectionModelPropertyChangeListener()
          创建负责从选择模型获取属性更改事件的侦听器。
protected  TreeExpansionListener createTreeExpansionListener()
          创建并返回在节点展开状态更改时负责更新 treestate 的对象。
protected  TreeModelListener createTreeModelListener()
          返回可以在模型更改时更新树的侦听器。
protected  TreeSelectionListener createTreeSelectionListener()
          创建基于选择更改方法更新显示的侦听器。
static ComponentUI createUI(JComponent x)
           
protected  void drawCentered(Component c, Graphics graphics, Icon icon, int x, int y)
           
protected  void drawDashedHorizontalLine(Graphics g, int y, int x1, int x2)
           
protected  void drawDashedVerticalLine(Graphics g, int x, int y1, int y2)
           
protected  void ensureRowsAreVisible(int beginRow, int endRow)
          确保 beginRow 通过 endRow 标识的行是可见的。
 int getBaseline(JComponent c, int width, int height)
          返回基线。
 Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
          返回一个枚举,它指示组件的基线如何随大小的改变而发生更改。
protected  TreeCellEditor getCellEditor()
           
protected  TreeCellRenderer getCellRenderer()
          返回 currentCellRenderer,可以为树渲染器,也可以为 defaultCellRenderer,无论哪个都不为 null。
 TreePath getClosestPathForLocation(JTree tree, int x, int y)
          返回到达最接近于 x,y 的那个节点的路径。
 Icon getCollapsedIcon()
           
 TreePath getEditingPath(JTree tree)
          返回到达正被编辑的元素的路径。
 Icon getExpandedIcon()
           
protected  Color getHashColor()
           
protected  int getHorizontalLegBuffer()
          默认情况下,节点间支路的水平元素开始于子节点左侧的右边。
protected  TreePath getLastChildPath(TreePath parent)
          返回到 parent 的最后一个子节点的路径。
 int getLeftChildIndent()
           
 Dimension getMaximumSize(JComponent c)
          返回此组件的最大大小,如果实例当前位于 JTree 中或 0, 0 处,则该大小将为首选大小。
 Dimension getMinimumSize(JComponent c)
          返回此组件的最小大小。
protected  TreeModel getModel()
           
 Rectangle getPathBounds(JTree tree, TreePath path)
          返回封闭标签部分的 Rectangle,路径中的最后一个项将在这一部分绘制。
 TreePath getPathForRow(JTree tree, int row)
          返回传入的 row 的路径。
 Dimension getPreferredMinSize()
          返回最小首选大小。
 Dimension getPreferredSize(JComponent c)
          返回首选大小以正确显示树,这是一种 getPreferredSize(c, false) 的替代方法。
 Dimension getPreferredSize(JComponent c, boolean checkConsistancy)
          返回首选大小以表示 c 中的树。
 int getRightChildIndent()
           
 int getRowCount(JTree tree)
          返回将显示的行数。
 int getRowForPath(JTree tree, TreePath path)
          返回可在其中看见路径中标识的最后一个项的行。
protected  int getRowHeight()
           
protected  int getRowX(int row, int depth)
          返回沿 x 轴呈现特定行的位置。
protected  TreeSelectionModel getSelectionModel()
           
protected  boolean getShowsRootHandles()
           
protected  int getVerticalLegBuffer()
          默认情况下,节点间支路的垂直元素开始于父节点的底部。
protected  void handleExpandControlClick(TreePath path, int mouseX, int mouseY)
          当用户单击特定行时传递消息,此方法调用 toggleExpandState。
protected  void installComponents()
          安装作为渲染器窗格的树的子组件。
protected  void installDefaults()
           
protected  void installKeyboardActions()
           
protected  void installListeners()
           
 void installUI(JComponent c)
          配置指定组件,使其适合外观。
protected  boolean isEditable()
           
 boolean isEditing(JTree tree)
          如果树正被编辑,则返回 true。
protected  boolean isLargeModel()
           
protected  boolean isLeaf(int row)
           
protected  boolean isLocationInExpandControl(TreePath path, int mouseX, int mouseY)
          如果 mouseXmouseY 落在用于展开/折叠节点的行的区域内,并且 row 的节点不表示叶节点,则返回 true。
protected  boolean isMultiSelectEvent(MouseEvent event)
          返回 true 表示节点上的鼠标事件应该根据锚点作出选择。
protected  boolean isRootVisible()
           
protected  boolean isToggleEvent(MouseEvent event)
          返回 true 指示应该基于事件切换鼠标下的行。
protected  boolean isToggleSelectionEvent(MouseEvent event)
          返回 true 表示节点上的鼠标事件应该仅切换鼠标下的行的选择。
 void paint(Graphics g, JComponent c)
          绘制指定组件,使其适合外观。
protected  void paintExpandControl(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          绘制 row 的展开(切换)部分。
protected  void paintHorizontalLine(Graphics g, JComponent c, int y, int left, int right)
          绘制水平线。
protected  void paintHorizontalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          绘制支路 (leg) 的水平部分。
protected  void paintRow(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          绘制 row 的渲染器部分。
protected  void paintVerticalLine(Graphics g, JComponent c, int x, int top, int bottom)
          绘制垂直线。
protected  void paintVerticalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, TreePath path)
          绘制支路的垂直部分。
protected  void pathWasCollapsed(TreePath path)
          在折叠 VisibleTreeNode 后,从其传递消息。
protected  void pathWasExpanded(TreePath path)
          在展开 VisibleTreeNode 后,从其传递消息。
protected  void prepareForUIInstall()
          在设置 tree 实例变量之后,但在安装任何默认值/侦听器之前调用此方法。
protected  void prepareForUIUninstall()
           
protected  void selectPathForEvent(TreePath path, MouseEvent event)
          传递消息以基于特定行上的 MouseEvent 更新选择。
protected  void setCellEditor(TreeCellEditor editor)
          设置单元格编辑器。
protected  void setCellRenderer(TreeCellRenderer tcr)
          将 TreeCellRenderer 设置为 tcr
 void setCollapsedIcon(Icon newG)
           
protected  void setEditable(boolean newValue)
          配置接收者以允许或不允许进行编辑。
 void setExpandedIcon(Icon newG)
           
protected  void setHashColor(Color color)
           
protected  void setLargeModel(boolean largeModel)
          如果必要,则更新 componentListener。
 void setLeftChildIndent(int newAmount)
           
protected  void setModel(TreeModel model)
          设置 TreeModel。
 void setPreferredMinSize(Dimension newSize)
          设置首选最小大小。
 void setRightChildIndent(int newAmount)
           
protected  void setRootVisible(boolean newValue)
          将根设置为可见。
protected  void setRowHeight(int rowHeight)
          设置行高度,此方法将被转发到 treeState。
protected  void setSelectionModel(TreeSelectionModel newLSM)
          重置选择模型。
protected  void setShowsRootHandles(boolean newValue)
          确定是否显示节点句柄。
protected  boolean shouldPaintExpandControl(TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
          如果应该为指定行绘制展开(切换)控件,则返回 true。
protected  boolean startEditing(TreePath path, MouseEvent event)
          如果存在 cellEditor 并且 shouldSelectCell 返回 true,则启动节点的编辑操作。
 void startEditingAtPath(JTree tree, TreePath path)
          选择路径中的最后一个项并尝试对其进行编辑。
 boolean stopEditing(JTree tree)
          停止当前编辑会话。
protected  void toggleExpandState(TreePath path)
          如果路径不是展开的,则展开它;如果它是展开的,则折叠它。
protected  void uninstallComponents()
          卸载渲染器窗格。
protected  void uninstallDefaults()
           
protected  void uninstallKeyboardActions()
           
protected  void uninstallListeners()
           
 void uninstallUI(JComponent c)
          在 installUI 期间,在指定组件上反向执行的配置操作。
protected  void updateCachedPreferredSize()
          更新 preferredSize 实例变量,该变量从 getPreferredSize() 返回。
protected  void updateCellEditor()
          基于包含所在的 JTree 的可编辑性更新 cellEditor。
protected  void updateDepthOffset()
          更新每次应该偏移的深度量。
protected  void updateExpandedDescendants(TreePath path)
          通过从树获取展开的子代并将其转发到树状态来更新 path 的所有子代的展开状态。
protected  void updateLayoutCacheExpandedNodes()
          让在 JTree 中展开的所有节点在 LayoutCache 中展开。
protected  void updateRenderer()
          当渲染器更改时从所处的树中传递消息。
protected  void updateSize()
          将缓存大小标记为无效并使用 treeDidChange 传递树的信息。
 
从类 javax.swing.plaf.ComponentUI 继承的方法
contains, getAccessibleChild, getAccessibleChildrenCount, update
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

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
负责处理大小和展开问题的对象。


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
编辑时,它将是进行实际编辑的 Component。


editingPath

protected TreePath editingPath
要编辑的路径。


editingRow

protected int editingRow
要编辑的行。仅当 editingComponent 不为 null 时才引用。


editorHasDifferentSize

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

构造方法详细信息

BasicTreeUI

public BasicTreeUI()
方法详细信息

createUI

public static ComponentUI createUI(JComponent x)

getHashColor

protected Color getHashColor()

setHashColor

protected void setHashColor(Color color)

setLeftChildIndent

public void setLeftChildIndent(int newAmount)

getLeftChildIndent

public int getLeftChildIndent()

setRightChildIndent

public void setRightChildIndent(int newAmount)

getRightChildIndent

public int getRightChildIndent()

setExpandedIcon

public void setExpandedIcon(Icon newG)

getExpandedIcon

public Icon getExpandedIcon()

setCollapsedIcon

public void setCollapsedIcon(Icon newG)

getCollapsedIcon

public Icon getCollapsedIcon()

setLargeModel

protected void setLargeModel(boolean largeModel)
如果必要,则更新 componentListener。


isLargeModel

protected boolean isLargeModel()

setRowHeight

protected void setRowHeight(int rowHeight)
设置行高度,此方法将被转发到 treeState。


getRowHeight

protected int getRowHeight()

setCellRenderer

protected void setCellRenderer(TreeCellRenderer tcr)
将 TreeCellRenderer 设置为 tcr。此方法调用 updateRenderer


getCellRenderer

protected TreeCellRenderer getCellRenderer()
返回 currentCellRenderer,可以为树渲染器,也可以为 defaultCellRenderer,无论哪个都不为 null。


setModel

protected void setModel(TreeModel model)
设置 TreeModel。


getModel

protected TreeModel getModel()

setRootVisible

protected void setRootVisible(boolean newValue)
将根设置为可见。


isRootVisible

protected boolean isRootVisible()

setShowsRootHandles

protected void setShowsRootHandles(boolean newValue)
确定是否显示节点句柄。


getShowsRootHandles

protected boolean getShowsRootHandles()

setCellEditor

protected void setCellEditor(TreeCellEditor editor)
设置单元格编辑器。


getCellEditor

protected TreeCellEditor getCellEditor()

setEditable

protected void setEditable(boolean newValue)
配置接收者以允许或不允许进行编辑。


isEditable

protected boolean isEditable()

setSelectionModel

protected void setSelectionModel(TreeSelectionModel newLSM)
重置选择模型。在模型上安装适当的侦听器。


getSelectionModel

protected TreeSelectionModel getSelectionModel()

getPathBounds

public Rectangle getPathBounds(JTree tree,
                               TreePath path)
返回封闭标签部分的 Rectangle,路径中的最后一个项将在这一部分绘制。如果路径中的任何组件当前有效,则返回 null。

指定者:
TreeUI 中的 getPathBounds

getPathForRow

public TreePath getPathForRow(JTree tree,
                              int row)
返回传入的 row 的路径。如果 row 不可见,则返回 null。

指定者:
TreeUI 中的 getPathForRow

getRowForPath

public int getRowForPath(JTree tree,
                         TreePath path)
返回可在其中看见路径中标识的最后一个项的行。如果路径中的所有元素当前都是不可见的,则返回 -1。

指定者:
TreeUI 中的 getRowForPath

getRowCount

public int getRowCount(JTree tree)
返回将显示的行数。

指定者:
TreeUI 中的 getRowCount

getClosestPathForLocation

public TreePath getClosestPathForLocation(JTree tree,
                                          int x,
                                          int y)
返回到达最接近于 x,y 的那个节点的路径。如果当前不可见,则返回 null,否则该方法总是返回一条有效路径。如果要测试返回的对象是否正好位于 x, y,则应该获取返回路径的边界,并根据该边界测试 x,y。

指定者:
TreeUI 中的 getClosestPathForLocation

isEditing

public boolean isEditing(JTree tree)
如果树正被编辑,则返回 true。正被编辑的项可由 getEditingPath() 返回。

指定者:
TreeUI 中的 isEditing

stopEditing

public boolean stopEditing(JTree tree)
停止当前编辑会话。如果不在编辑树,则此方法无效。如果编辑器允许停止编辑会话,则返回 true。

指定者:
TreeUI 中的 stopEditing

cancelEditing

public void cancelEditing(JTree tree)
取消当前编辑会话。

指定者:
TreeUI 中的 cancelEditing

startEditingAtPath

public void startEditingAtPath(JTree tree,
                               TreePath path)
选择路径中的最后一个项并尝试对其进行编辑。如果 CellEditor 不允许对所选项进行编辑操作,则编辑将失败。

指定者:
TreeUI 中的 startEditingAtPath

getEditingPath

public TreePath getEditingPath(JTree tree)
返回到达正被编辑的元素的路径。

指定者:
TreeUI 中的 getEditingPath

installUI

public void installUI(JComponent c)
从类 ComponentUI 复制的描述
配置指定组件,使其适合外观。当 ComponentUI 实例将作为 UI 委托安装在指定组件上时,可调用此方法。此方法应该为外观完整地配置组件,包括以下方面:
  1. 在组件上安装用于颜色、字体、边框、图标、不透明性等方面的所有默认属性值。只要有可能,就 应该重写由客户端程序初始化的属性值。
  2. 如有必要,可在组件上安装一个 LayoutManager
  3. 将所需的所有子组件创建/添加到组件中。
  4. 在组件上创建/安装事件侦听器。
  5. 为了检测和适当响应组件属性更改,可在组件上创建/安装一个 PropertyChangeListener
  6. 在组件上安装键盘 UI(助记符、遍历等等)。
  7. 初始化任何适当的实例数据。

覆盖:
ComponentUI 中的 installUI
参数:
c - 将安装此 UI 委托的组件
另请参见:
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 的实例。


createPropertyChangeListener

protected PropertyChangeListener createPropertyChangeListener()
创建负责基于树的更改方式更新 UI 的侦听器。


createMouseListener

protected MouseListener createMouseListener()
创建负责基于鼠标事件更新选择的侦听器。


createFocusListener

protected FocusListener createFocusListener()
创建失去/获取焦点时负责更新显示的侦听器。


createKeyListener

protected KeyListener createKeyListener()
创建负责从树获取键事件的侦听器。


createSelectionModelPropertyChangeListener

protected PropertyChangeListener createSelectionModelPropertyChangeListener()
创建负责从选择模型获取属性更改事件的侦听器。


createTreeSelectionListener

protected TreeSelectionListener createTreeSelectionListener()
创建基于选择更改方法更新显示的侦听器。


createCellEditorListener

protected CellEditorListener createCellEditorListener()
创建在当前编辑器中处理事件的侦听器。


createComponentListener

protected ComponentListener createComponentListener()
创建并返回新的 ComponentHandler。它用于大型模型,在组件移动时将 validCachedPreferredSize 标记为无效。


createTreeExpansionListener

protected TreeExpansionListener createTreeExpansionListener()
创建并返回在节点展开状态更改时负责更新 treestate 的对象。


createLayoutCache

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


createCellRendererPane

protected CellRendererPane createCellRendererPane()
返回用于放置渲染器组件的渲染器窗格。


createDefaultCellEditor

protected TreeCellEditor createDefaultCellEditor()
创建默认单元格编辑器。


createDefaultCellRenderer

protected TreeCellRenderer createDefaultCellRenderer()
返回用于为每个节点添加标志的默认单元格渲染器。


createTreeModelListener

protected TreeModelListener createTreeModelListener()
返回可以在模型更改时更新树的侦听器。


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 操作。

覆盖:
ComponentUI 中的 uninstallUI
参数:
c - 从中移除此 UI 委托的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
另请参见:
ComponentUI.installUI(javax.swing.JComponent), JComponent.updateUI()

prepareForUIUninstall

protected void prepareForUIUninstall()

completeUIUninstall

protected void completeUIUninstall()

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)
返回基线。

覆盖:
ComponentUI 中的 getBaseline
参数:
c - 为其请求基线的 JComponent
width - 为其获取基线的宽度
height - 为其获取基线的高度
返回:
基线;如果没有合理的基线,则返回 < 0 的值
抛出:
NullPointerException - 如果 cnull
IllegalArgumentException - 如果宽度或高度 < 0
从以下版本开始:
1.6
另请参见:
JComponent.getBaseline(int, int)

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
返回一个枚举,它指示组件的基线如何随大小的改变而发生更改。

覆盖:
ComponentUI 中的 getBaselineResizeBehavior
参数:
c - 为其返回调整大小行为的 JComponent
返回:
一个枚举,指示基线如何随组件大小的改变而发生更改
抛出:
NullPointerException - 如果 cnull
从以下版本开始:
1.6
另请参见:
JComponent.getBaseline(int, int)

paint

public void paint(Graphics g,
                  JComponent c)
从类 ComponentUI 复制的描述
绘制指定组件,使其适合外观。在将要绘制指定组件时,从 ComponentUI.update 方法中调用此方法。子类应该重写此方法并使用指定 Graphics 对象来呈现组件的内容。

覆盖:
ComponentUI 中的 paint
参数:
g - 将在其中进行绘制的 Graphics 上下文
c - 将绘制的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
另请参见:
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)

paintHorizontalPartOfLeg

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

注:如果树不可见,则 parentRow 为 -1。


paintVerticalPartOfLeg

protected void paintVerticalPartOfLeg(Graphics g,
                                      Rectangle clipBounds,
                                      Insets insets,
                                      TreePath path)
绘制支路的垂直部分。接收者不应修改 clipBoundsinsets


paintExpandControl

protected void paintExpandControl(Graphics g,
                                  Rectangle clipBounds,
                                  Insets insets,
                                  Rectangle bounds,
                                  TreePath path,
                                  int row,
                                  boolean isExpanded,
                                  boolean hasBeenExpanded,
                                  boolean isLeaf)
绘制 row 的展开(切换)部分。接收者不应修改 clipBoundsinsets


paintRow

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


shouldPaintExpandControl

protected boolean shouldPaintExpandControl(TreePath path,
                                           int row,
                                           boolean isExpanded,
                                           boolean hasBeenExpanded,
                                           boolean isLeaf)
如果应该为指定行绘制展开(切换)控件,则返回 true。


paintVerticalLine

protected void paintVerticalLine(Graphics g,
                                 JComponent c,
                                 int x,
                                 int top,
                                 int bottom)
绘制垂直线。


paintHorizontalLine

protected void paintHorizontalLine(Graphics g,
                                   JComponent c,
                                   int y,
                                   int left,
                                   int right)
绘制水平线。


getVerticalLegBuffer

protected int getVerticalLegBuffer()
默认情况下,节点间支路的垂直元素开始于父节点的底部。此方法能让支路从该位置以下开始。


getHorizontalLegBuffer

protected int getHorizontalLegBuffer()
默认情况下,节点间支路的水平元素开始于子节点左侧的右边。此方法能让支路在该位置以前结束。


drawCentered

protected void drawCentered(Component c,
                            Graphics graphics,
                            Icon icon,
                            int x,
                            int y)

drawDashedHorizontalLine

protected void drawDashedHorizontalLine(Graphics g,
                                        int y,
                                        int x1,
                                        int x2)

drawDashedVerticalLine

protected void drawDashedVerticalLine(Graphics g,
                                      int x,
                                      int y1,
                                      int y2)

getRowX

protected int getRowX(int row,
                      int depth)
返回沿 x 轴呈现特定行的位置。返回值不包括在 JTree 上指定的任何 Insets。此方法不检查行或深度的有效性,只是假定其正确;如果行或深度与树的行或深度不匹配,则其也不抛出 Exception。

参数:
row - 返回 x 位置的行
depth - 行的深度
返回:
给定行的缩进量。
从以下版本开始:
1.5

updateLayoutCacheExpandedNodes

protected void updateLayoutCacheExpandedNodes()
让在 JTree 中展开的所有节点在 LayoutCache 中展开。此方法通过根路径调用 updateExpandedDescendants。


updateExpandedDescendants

protected void updateExpandedDescendants(TreePath path)
通过从树获取展开的子代并将其转发到树状态来更新 path 的所有子代的展开状态。


getLastChildPath

protected TreePath getLastChildPath(TreePath parent)
返回到 parent 的最后一个子节点的路径。


updateDepthOffset

protected void updateDepthOffset()
更新每次应该偏移的深度量。


updateCellEditor

protected void updateCellEditor()
基于包含所在的 JTree 的可编辑性更新 cellEditor。如果树可编辑但不具有 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 后,从其传递消息。


pathWasCollapsed

protected void pathWasCollapsed(TreePath path)
在折叠 VisibleTreeNode 后,从其传递消息。


ensureRowsAreVisible

protected void ensureRowsAreVisible(int beginRow,
                                    int endRow)
确保 beginRow 通过 endRow 标识的行是可见的。


setPreferredMinSize

public void setPreferredMinSize(Dimension newSize)
设置首选最小大小。


getPreferredMinSize

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


getPreferredSize

public Dimension getPreferredSize(JComponent c)
返回首选大小以正确显示树,这是一种 getPreferredSize(c, false) 的替代方法。

覆盖:
ComponentUI 中的 getPreferredSize
参数:
c - 将查询其首选大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
另请参见:
JComponent.getPreferredSize(), LayoutManager.preferredLayoutSize(java.awt.Container)

getPreferredSize

public Dimension getPreferredSize(JComponent c,
                                  boolean checkConsistancy)
返回首选大小以表示 c 中的树。如果 checkConsistancy 为 true,则首先传递 checkConsistancy 的消息。


getMinimumSize

public Dimension getMinimumSize(JComponent c)
返回此组件的最小大小。该大小将为最小首选大小或 0, 0。

覆盖:
ComponentUI 中的 getMinimumSize
参数:
c - 将查询其最小大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
返回:
一个 Dimension 对象或 null
另请参见:
JComponent.getMinimumSize(), LayoutManager.minimumLayoutSize(java.awt.Container), ComponentUI.getPreferredSize(javax.swing.JComponent)

getMaximumSize

public Dimension getMaximumSize(JComponent c)
返回此组件的最大大小,如果实例当前位于 JTree 中或 0, 0 处,则该大小将为首选大小。

覆盖:
ComponentUI 中的 getMaximumSize
参数:
c - 将查询其最大大小的组件;此参数常被忽略,但如果 UI 对象是无状态的并由多个组件共享,则可以使用该参数
返回:
一个 Dimension 对象或 null
另请参见:
JComponent.getMaximumSize(), LayoutManager2.maximumLayoutSize(java.awt.Container)

completeEditing

protected void completeEditing()
传递消息以停止编辑会话。如果接收者为其提供外观的 UI 从 getInvokesStopCellEditing 返回 true,则在当前编辑器上调用 stopCellEditing。然后对 completeEditing 传递 false 或 true 消息,false 表示取消所有遗留的编辑。


completeEditing

protected void completeEditing(boolean messageStop,
                               boolean messageCancel,
                               boolean messageTree)
停止编辑会话。如果 messageStop 为 true,则对编辑器传递 stopEditing 的消息;如果 messageCancel 为 true,则对编辑器传递 cancelEditing 的消息。如果 messageTree 为 true,则对 treeModel 传递 valueForPathChanged 的消息。


startEditing

protected boolean startEditing(TreePath path,
                               MouseEvent event)
如果存在 cellEditor 并且 shouldSelectCell 返回 true,则启动节点的编辑操作。

此方法假定路径有效且可见。


checkForClickInExpandControl

protected void checkForClickInExpandControl(TreePath path,
                                            int mouseX,
                                            int mouseY)
如果 mouseXmouseY 位于 row 的展开/折叠区域内,则此方法将切换行。


isLocationInExpandControl

protected boolean isLocationInExpandControl(TreePath path,
                                            int mouseX,
                                            int mouseY)
如果 mouseXmouseY 落在用于展开/折叠节点的行的区域内,并且 row 的节点不表示叶节点,则返回 true。


handleExpandControlClick

protected void handleExpandControlClick(TreePath path,
                                        int mouseX,
                                        int mouseY)
当用户单击特定行时传递消息,此方法调用 toggleExpandState。


toggleExpandState

protected void toggleExpandState(TreePath path)
如果路径不是展开的,则展开它;如果它是展开的,则折叠它。如果展开路径且 JTree 在展开的基础上滚动,则调用 ensureRowsAreVisible 以滚动尽可能多的可见子节点(试图滚动到路径的最后一个可见子代)。


isToggleSelectionEvent

protected boolean isToggleSelectionEvent(MouseEvent event)
返回 true 表示节点上的鼠标事件应该仅切换鼠标下的行的选择。


isMultiSelectEvent

protected boolean isMultiSelectEvent(MouseEvent event)
返回 true 表示节点上的鼠标事件应该根据锚点作出选择。


isToggleEvent

protected boolean isToggleEvent(MouseEvent event)
返回 true 指示应该基于事件切换鼠标下的行。此方法在 checkForClickInExpandControl 之后调用,暗指该位置不受展开(切换)的控制


selectPathForEvent

protected void selectPathForEvent(TreePath path,
                                  MouseEvent event)
传递消息以基于特定行上的 MouseEvent 更新选择。如果事件为切换选择事件,则或者选择行或者取消选择行。如果事件标识多选择事件,则根据定位点更新选择。否则,选择行;如果事件指定了切换事件,则展开/折叠行。


isLeaf

protected boolean isLeaf(int row)
返回:
如果位于 row 的节点是叶节点,则返回 true。

JavaTM Platform
Standard Ed. 6

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

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