- java.lang.Object
-
- javax.swing.plaf.ComponentUI
-
- javax.swing.plaf.TreeUI
-
- javax.swing.plaf.basic.BasicTreeUI
-
- 已知直接子类:
-
MetalTreeUI
,SynthTreeUI
public class BasicTreeUI extends TreeUI
分层数据结构的基本L&F。
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 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
ActionListener在执行操作时调用cancelEditing。class
BasicTreeUI.TreeExpansionHandler
响应节点扩展/折叠更新TreeState。class
BasicTreeUI.TreeHomeAction
TreeHomeAction用于处理结束/ home操作。class
BasicTreeUI.TreeIncrementAction
TreeIncrementAction用于处理上/下动作。class
BasicTreeUI.TreeModelHandler
将所有TreeModel事件转发给TreeState。class
BasicTreeUI.TreePageAction
TreePageAction处理页面向上和向下翻页事件。class
BasicTreeUI.TreeSelectionHandler
监听选择模型中的更改,并相应地更新显示。class
BasicTreeUI.TreeToggleAction
对于第一个选定的行展开将被切换。class
BasicTreeUI.TreeTraverseAction
TreeTraverseAction
是用于左/右键的动作。
-
Field Summary
Fields Modifier and Type Field 描述 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
编辑时,这将是正在进行实际编辑的组件。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是否有效?
-
构造方法摘要
构造方法 Constructor 描述 BasicTreeUI()
构造一个新的实例BasicTreeUI
。
-
方法摘要
所有方法 静态方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
cancelEditing(JTree tree)
取消当前编辑会话。protected void
checkForClickInExpandControl(TreePath path, int mouseX, int mouseY)
如果mouseX
和mouseY
都在的展开/折叠区域row
,这将切换行。protected void
completeEditing()
消息停止编辑会话。protected void
completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)
停止编辑会话。protected void
completeUIInstall()
在安装了所有默认值/监听器之后从installUI调用。protected void
completeUIUninstall()
卸载UIprotected 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)
构造一个新的实例BasicTreeUI
。protected void
drawCentered(Component c, Graphics graphics, Icon icon, int x, int y)
绘制以(x,y)为中心的icon
。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()
返回一个TreeCellEditor
的实例。protected TreeCellRenderer
getCellRenderer()
返回currentCellRenderer
,它将是树形渲染器,或者是defaultCellRenderer
,它永远不是空的。TreePath
getClosestPathForLocation(JTree tree, int x, int y)
返回最接近x,y的节点的路径。Icon
getCollapsedIcon()
返回折叠图标。protected Rectangle
getDropLineRect(JTree.DropLocation loc)
返回下拉线的无界框。TreePath
getEditingPath(JTree tree)
返回正在编辑的元素的路径。Icon
getExpandedIcon()
返回展开的图标。protected Color
getHashColor()
返回散列颜色。protected int
getHorizontalLegBuffer()
默认情况下,节点之间的腿的水平元素从子节点左侧的右侧开始。protected TreePath
getLastChildPath(TreePath parent)
返回最后一个小孩的路径为parent
。protected int
getLeadSelectionRow()
返回选择的首行。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)
返回在行中传递的路径。Dimension
getPreferredMinSize()
返回最小首选大小。Dimension
getPreferredSize(JComponent c)
返回首选大小以正确显示树,这是getPreferredSize(c, true)
的封面方法。Dimension
getPreferredSize(JComponent c, boolean checkConsistency)
返回在 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()
如果要显示根句柄,则返回true
。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
isDropLine(JTree.DropLocation loc)
告诉一个DropLocation
是否应该由节点之间的一行表示。protected boolean
isEditable()
如果树是可编辑的,则返回true
。boolean
isEditing(JTree tree)
如果正在编辑树,则返回true。protected boolean
isLargeModel()
如果设置大型号,则返回true
。protected boolean
isLeaf(int row)
返回true
如果在节点row
是叶。protected boolean
isLocationInExpandControl(TreePath path, int mouseX, int mouseY)
如果mouseX
和mouseY
落在用于展开/折叠节点的行的区域中,则返回true
,而在row
处的节点不表示一个叶。protected boolean
isMultiSelectEvent(MouseEvent event)
返回true
表示节点上的鼠标事件应从锚点中选择。protected boolean
isRootVisible()
如果树根可见,则返回true
。protected boolean
isToggleEvent(MouseEvent event)
返回true
表示鼠标下的行应根据事件切换。protected boolean
isToggleSelectionEvent(MouseEvent event)
返回true
表示节点上的鼠标事件应该只切换鼠标下的行的选择。void
paint(Graphics g, JComponent c)
适当地涂抹指定的组件的外观和感觉。protected void
paintDropLine(Graphics g)
画下线。protected void
paintExpandControl(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
绘制一行的展开(切换)部分。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)
涂抹腿部的水平部分。protected void
paintRow(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
绘制一行的渲染器部分。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()
在安装UI之前调用。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
updateLeadSelectionRow()
更新选择的首行。protected void
updateRenderer()
当渲染器发生变化时,我们从树中消失。protected void
updateSize()
将缓存大小标记为无效,并使用treeDidChange
消息树。-
Methods inherited from class javax.swing.plaf.ComponentUI
contains, getAccessibleChild, getAccessibleChildrenCount, update
-
-
-
-
字段详细信息
-
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实例。
-
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。
-
-
方法详细信息
-
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
-JTree
为path
-
path
- 识别节点的TreePath
- 结果
-
如果路径中的任何组件当前是有效的,则包含标签部分的
Rectangle
将路径中的最后一个项目绘制到null
。
-
getPathForRow
public TreePath getPathForRow(JTree tree, int row)
返回在行中传递的路径。 如果行不可见返回null。- Specified by:
-
getPathForRow
在TreeUI
- 参数
-
tree
- aJTree
对象 -
row
- 一个指定行的整数 - 结果
-
path
为row
或null
如果row
不可见
-
getRowForPath
public int getRowForPath(JTree tree, TreePath path)
返回在路径中识别的最后一个项目可见的行。 如果路径中的任何元素当前不可见,则返回-1。- Specified by:
-
getRowForPath
在TreeUI
- 参数
-
tree
-JTree
为path
-
path
- 要查看的TreePath
对象 - 结果
-
一个整数,指定最后一个可识别项目的行,-1,如果
path
中的任何元素当前不可见
-
getRowCount
public int getRowCount(JTree tree)
返回正在显示的行数。- Specified by:
-
getRowCount
在TreeUI
- 参数
-
tree
- 要计数行数的JTree
- 结果
- 一个指定要显示的行数的整数
-
getClosestPathForLocation
public TreePath getClosestPathForLocation(JTree tree, int x, int y)
返回最接近x,y的节点的路径。 如果当前没有任何可见的内容,则返回null,否则返回一个有效的路径。 如果您需要测试返回的对象是否完全在x处,那么您应该获得返回路径的边界,并对其进行测试x,y。- Specified by:
-
getClosestPathForLocation
在TreeUI
- 参数
-
tree
- aJTree
对象 -
x
- 从显示区域的左边缘水平地提供像素数的整数 -
y
- 从显示区域顶部垂直排列的像素数减去任何顶部边距的整数 - 结果
-
在
TreePath
最接近节点x,y
或者null
如果当前没有任何可见
-
isEditing
public boolean isEditing(JTree tree)
如果正在编辑树,则返回true。 正在编辑的项目可以由getEditingPath()返回。
-
stopEditing
public boolean stopEditing(JTree tree)
停止当前编辑会话。 如果树未被编辑,则不起作用。 如果编辑器允许编辑会话停止,则返回true。- Specified by:
-
stopEditing
在TreeUI
- 参数
-
tree
- 一个JTree
对象 - 结果
- 如果编辑器允许编辑会话停止,则为true
-
cancelEditing
public void cancelEditing(JTree tree)
取消当前编辑会话。- Specified by:
-
cancelEditing
类TreeUI
- 参数
-
tree
- aJTree
对象
-
startEditingAtPath
public void startEditingAtPath(JTree tree, TreePath path)
选择路径中的最后一个项目并尝试编辑它。 如果CellEditor不允许选择的项目,编辑将失败。- Specified by:
-
startEditingAtPath
在TreeUI
- 参数
-
tree
- 正在编辑的JTree
-
path
- 要编辑的TreePath
-
getEditingPath
public TreePath getEditingPath(JTree tree)
返回正在编辑的元素的路径。- Specified by:
-
getEditingPath
在TreeUI
- 参数
-
tree
- 要返回路径的JTree
- 结果
-
一个
TreePath
包含的路径到tree
-
installUI
public void installUI(JComponent c)
描述从类复制:ComponentUI
适当地配置指定的组件的外观和感觉。 当安装ComponentUI
实例作为指定组件上的UI委托时,将调用此方法。 该方法应该完全配置组件的外观,包括以下内容:- 为组件上的颜色,字体,边框,图标,不透明度等安装默认属性值。 只要有可能,由客户端程序初始化的属性值不应该被重写。
- 如有必要,请在组件上安装
LayoutManager
。 - 创建/添加任何所需的子组件到组件。
- 在组件上创建/安装事件监听器。
- 在组件上创建/安装
PropertyChangeListener
,以便适当地检测和响应组件属性的更改。 - 在组件上安装键盘UI(助记符,遍历等)。
- 初始化任何适当的实例数据。
- 重写:
-
installUI
类ComponentUI
- 参数
-
c
- 正在安装此UIc
的组件 - 另请参见:
-
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
实例处于干净状态(无外部侦听器,外观特定属性对象等)。 这应该包括以下内容:- 从组件中删除任何UI集边框。
- 删除组件上的任何UI集布局管理器。
- 从组件中删除任何添加了UI的子组件。
- 从组件中删除任何UI添加的事件/属性侦听器。
- 从组件中删除任何UI安装的键盘UI。
- 对任何分配的实例数据对象进行空白以允许GC。
- 重写:
-
uninstallUI
在ComponentUI
- 参数
-
c
- 从中删除此UIc
的组件; 这个参数经常被忽略,但如果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()
卸载渲染器窗格。
-
getBaseline
public int getBaseline(JComponent c, int width, int height)
返回基线。- 重写:
-
getBaseline
在ComponentUI
- 参数
-
c
-JComponent
正在请求基准 -
width
- 获取基准的宽度 -
height
- 获得基准的高度 - 结果
- 基线或值<0表示没有合理的基线
- 异常
-
NullPointerException
- 如果c
是null
-
IllegalArgumentException
- 如果宽度或高度<0 - 从以下版本开始:
- 1.6
- 另请参见:
-
JComponent.getBaseline(int, int)
-
getBaselineResizeBehavior
public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
返回一个枚举,指示组件的基线如何随着大小的变化而改变。- 重写:
-
getBaselineResizeBehavior
在ComponentUI
- 参数
-
c
-JComponent
以返回基准调整大小行为 - 结果
- 一个枚举,指示基准随着组件大小的变化而改变
- 异常
-
NullPointerException
- 如果c
是null
- 从以下版本开始:
- 1.6
- 另请参见:
-
JComponent.getBaseline(int, int)
-
paint
public void paint(Graphics g, JComponent c)
描述从类别复制:ComponentUI
适当地涂抹指定的组件的外观和感觉。 当正在绘制指定的组件时,将从ComponentUI.update
方法调用此方法。 子类应该覆盖此方法,并使用指定的Graphics
对象来呈现组件的内容。- 重写:
-
paint
在ComponentUI
- 参数
-
g
- 要绘画的Graphics
上下文 -
c
- 正在涂漆的部件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 另请参见:
-
ComponentUI.update(java.awt.Graphics, javax.swing.JComponent)
-
isDropLine
protected boolean isDropLine(JTree.DropLocation loc)
告诉一个DropLocation
是否应该由节点之间的一行指示。 这是针对javax.swing.DropMode.INSERT
和javax.swing.DropMode.ON_OR_INSERT
丢弃模式。- 参数
-
loc
- aDropLocation
- 结果
-
true
如果放置位置应显示为一行 - 从以下版本开始:
- 1.7
-
paintDropLine
protected void paintDropLine(Graphics g)
画下线。- 参数
-
g
-Graphics
对象绘制 - 从以下版本开始:
- 1.7
-
getDropLineRect
protected Rectangle getDropLineRect(JTree.DropLocation loc)
返回下拉线的无界框。- 参数
-
loc
- aDropLocation
- 结果
- 下拉线的边框
- 从以下版本开始:
- 1.7
-
paintHorizontalPartOfLeg
protected void paintHorizontalPartOfLeg(Graphics g, Rectangle clipBounds, Insets insets, Rectangle bounds, TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf)
涂抹腿部的水平部分。 接收方不应修改clipBounds
或insets
。注意:如果根目录不可见,则可以为
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)
涂上腿部的垂直部分。 该接收器不应修改clipBounds
,insets
。- 参数
-
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)
绘制一行的展开(切换)部分。 接收方不应修改clipBounds
或insets
。- 参数
-
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)
绘制一行的渲染器部分。 接收方不应修改clipBounds
或insets
。- 参数
-
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)
确保由beginRow
至endRow
标识的行是可见的。- 参数
-
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
- 一个组件 - 结果
- 表示组件中树的首选大小
- 另请参见:
-
JComponent.getPreferredSize()
,LayoutManager.preferredLayoutSize(java.awt.Container)
-
getPreferredSize
public Dimension getPreferredSize(JComponent c, boolean checkConsistency)
返回在c中表示树的首选大小。 如果checkConsistency是true
checkConsistency是首先消息。- 参数
-
c
- 一个组件 -
checkConsistency
- 如果检查true
一致性 - 结果
- 表示组件中树的首选大小
-
getMinimumSize
public Dimension getMinimumSize(JComponent c)
返回此组件的最小大小。 哪个将是最小的首选大小或0,0。- 重写:
-
getMinimumSize
在ComponentUI
- 参数
-
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,则该大小将是首选大小。- 重写:
-
getMaximumSize
在ComponentUI
- 参数
-
c
- 查询最大大小的组件; 这个参数经常被忽略,但如果UI对象是无状态的并且被多个组件共享,则可能会被使用 - 结果
-
一个
Dimension
对象或null
- 另请参见:
-
JComponent.getMaximumSize()
,LayoutManager2.maximumLayoutSize(java.awt.Container)
-
completeEditing
protected void completeEditing()
消息停止编辑会话。 如果接收者的UI为getInvokesStopCellEditing
提供了返回true的getInvokesStopCellEditing
,那么stopCellEditing将在当前编辑器上调用。 那么完成编辑将会被false,true,false消除,以取消任何延续的编辑。
-
completeEditing
protected void completeEditing(boolean messageStop, boolean messageCancel, boolean messageTree)
停止编辑会话。 如果messageStop
是true
编辑器与stopEditing
,如果messageCancel
是true
编辑器与cancelEditing
消息。 如果messageTree
为true
的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)
如果mouseX
和mouseY
都在的展开/折叠区域row
,这将切换行。- 参数
-
path
- 树路径 -
mouseX
- X坐标 -
mouseY
- 一个Y坐标
-
isLocationInExpandControl
protected boolean isLocationInExpandControl(TreePath path, int mouseX, int mouseY)
如果mouseX
和mouseY
落在用于展开/折叠节点的行的区域中,则返回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
-
-