java.lang.Object
javax.swing.tree.DefaultTreeCellEditor
- 所有已实现的接口:
-
ActionListener
,EventListener
,CellEditor
,TreeSelectionListener
,TreeCellEditor
public class DefaultTreeCellEditor extends Object implements ActionListener, TreeCellEditor, TreeSelectionListener
一个
TreeCellEditor
。您需要提供一个DefaultTreeCellRenderer
的实例,以便可以获取图标。您还可以选择提供一个TreeCellEditor
,它将根据DefaultTreeCellRenderer
中的图标进行布局。如果您不提供TreeCellEditor
,将使用一个TextField
。编辑在三次鼠标单击后开始,或者在单击、暂停、单击和延迟1200毫秒后开始。
警告: 该类的序列化对象将不兼容未来的Swing版本。当前的序列化支持适用于短期存储或在运行相同Swing版本的应用程序之间的RMI。从1.4版本开始,已经向java.beans
包添加了对所有JavaBeans进行长期存储的支持。请参阅XMLEncoder
。
- 参见:
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
当未提供编辑器时使用的TextField
。class
负责放置editingComponent
的容器。 -
Field Summary
Modifier and TypeFieldDescriptionprotected Color
如果应绘制边框选择颜色,则为True。protected boolean
从Java 2平台v1.4开始,不应再使用此字段。protected Component
用于编辑的组件,从editingContainer
中获取。protected Container
编辑容器,将包含editorComponent
。protected Icon
在编辑时使用的图标。protected Font
用于绘制的字体,null
表示将使用渲染器的字体。protected TreePath
上次选择的路径。protected int
传递给getTreeCellEditorComponent
的上次路径。protected int
用于编辑。protected TreeCellEditor
处理编辑的编辑器。protected DefaultTreeCellRenderer
渲染器,用于获取边框和偏移量。protected Timer
在开始编辑会话之前使用。protected JTree
监听的JTree
实例。 -
Constructor Summary
ConstructorDescriptionDefaultTreeCellEditor
(JTree tree, DefaultTreeCellRenderer renderer) 为JTree使用指定的渲染器和默认编辑器构造一个DefaultTreeCellEditor
对象。DefaultTreeCellEditor
(JTree tree, DefaultTreeCellRenderer renderer, TreeCellEditor editor) 为JTree
使用指定的渲染器和指定的编辑器构造一个DefaultTreeCellEditor
对象。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
当计时器触发时发出消息,这将开始编辑会话。void
添加CellEditorListener
。void
向realEditor
发送cancelCellEditing
消息,并将其从此实例中移除。protected boolean
canEditImmediately
(EventObject event) 如果event
为null
,或者是一个点击次数>2且inHitRegion
返回true的MouseEvent
,则返回true。protected Container
创建容器以管理editingComponent
的放置。protected TreeCellEditor
如果在构造函数中未提供TreeCellEditor
,则调用此方法。protected void
determineOffset
(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) 确定偏移量。返回绘制边框的颜色。返回添加到此DefaultTreeCellEditor中的所有CellEditorListener
数组。返回当前正在编辑的值。getFont()
获取用于编辑的字体。getTreeCellEditorComponent
(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) 配置编辑器。protected boolean
inHitRegion
(int x, int y) 如果传入位置是有效的鼠标位置以开始编辑,则返回true。boolean
isCellEditable
(EventObject event) 如果realEditor
对此消息返回true,则发送prepareForEditing
消息并返回true。protected void
在编辑开始之前调用。void
移除先前添加的CellEditorListener
。void
setBorderSelectionColor
(Color newColor) 设置用于边框的颜色。void
设置用于编辑的字体。protected void
设置当前正在编辑的树。boolean
shouldSelectCell
(EventObject event) 向realEditor
发送消息以获取返回值。protected boolean
如果event
是MouseEvent
且点击次数为1,则返回true。protected void
启动编辑计时器。boolean
如果realEditor
允许停止编辑,则删除realEditor
并返回true,否则返回false。void
重置lastPath
。
-
Field Details
-
realEditor
处理编辑的编辑器。 -
renderer
渲染器,用于获取边框和偏移量。 -
editingContainer
编辑容器,将包含editorComponent
。 -
editingComponent
用于编辑的组件,从editingContainer
中获取。 -
canEdit
protected boolean canEdit从Java 2平台v1.4开始,不应再使用此字段。如果您希望提供类似的行为,应直接覆盖isCellEditable
。 -
offset
protected transient int offset用于编辑。指示放置editingComponent
的x位置。 -
tree
监听的JTree
实例。 -
lastPath
上次选择的路径。 -
timer
在开始编辑会话之前使用。 -
lastRow
protected transient int lastRow传递给getTreeCellEditorComponent
的上次路径。 -
borderSelectionColor
如果应绘制边框选择颜色,则为True。 -
editingIcon
在编辑时使用的图标。 -
font
用于绘制的字体,null
表示将使用渲染器的字体。
-
-
Constructor Details
-
DefaultTreeCellEditor
为JTree使用指定的渲染器和默认编辑器构造一个DefaultTreeCellEditor
对象。(对于普通编辑,请使用此构造函数。)- 参数:
-
tree
- 一个JTree
对象 -
renderer
- 一个DefaultTreeCellRenderer
对象
-
DefaultTreeCellEditor
为JTree
使用指定的渲染器和指定的编辑器构造一个DefaultTreeCellEditor
对象。(对于专门的编辑,请使用此构造函数。)- 参数:
-
tree
- 一个JTree
对象 -
renderer
- 一个DefaultTreeCellRenderer
对象 -
editor
- 一个TreeCellEditor
对象
-
-
Method Details
-
setBorderSelectionColor
设置用于边框的颜色。- 参数:
-
newColor
- 新的边框颜色
-
getBorderSelectionColor
返回绘制边框的颜色。- 返回:
- 边框选择颜色
-
setFont
设置用于编辑的字体。null
表示应使用渲染器的字体。这不会覆盖您在实例化接收器时设置的任何字体。如果为编辑器传递了null
,将创建一个默认编辑器,该编辑器将使用此字体。- 参数:
-
font
- 编辑的Font
- 参见:
-
getFont
获取用于编辑的字体。- 返回:
-
编辑的
Font
- 参见:
-
getTreeCellEditorComponent
public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) 配置编辑器。传递给realEditor
。- 指定者:
-
getTreeCellEditorComponent
在接口TreeCellEditor
中 - 参数:
-
tree
- 请求编辑器进行编辑的JTree;此参数可以为null -
value
- 要编辑的单元格的值 -
isSelected
- 如果要使用选择高亮显示渲染单元格,则为true -
expanded
- 如果节点已展开,则为true -
leaf
- 如果节点是叶节点,则为true -
row
- 正在编辑的节点的行索引 - 返回:
- 用于编辑的组件
-
getCellEditorValue
返回当前正在编辑的值。- 指定者:
-
getCellEditorValue
在接口CellEditor
中 - 返回:
- 当前正在编辑的值
-
isCellEditable
如果realEditor
对此消息返回true,则发送prepareForEditing
消息并返回true。- 指定者:
-
isCellEditable
在接口CellEditor
中 - 参数:
-
event
- 编辑器应使用的事件,以确定是否开始编辑 - 返回:
- 如果可以开始编辑,则为true
- 参见:
-
shouldSelectCell
向realEditor
发送消息以获取返回值。- 指定由:
-
shouldSelectCell
在接口CellEditor
中 - 参数:
-
event
- 编辑器应使用的事件来开始编辑 - 返回:
- 如果编辑器希望选择编辑单元格,则返回true;否则返回false
- 参见:
-
stopCellEditing
public boolean stopCellEditing()如果realEditor
允许停止编辑,则删除realEditor
并返回true,否则返回false。- 指定由:
-
stopCellEditing
在接口CellEditor
中 - 返回:
- 如果停止编辑,则返回true;否则返回false
-
cancelCellEditing
public void cancelCellEditing()向realEditor
发送cancelCellEditing
消息,并从此实例中删除它。- 指定由:
-
cancelCellEditing
在接口CellEditor
中
-
addCellEditorListener
添加CellEditorListener
。- 指定由:
-
addCellEditorListener
在接口CellEditor
中 - 参数:
-
l
- 要添加的监听器
-
removeCellEditorListener
删除先前添加的CellEditorListener
。- 指定由:
-
removeCellEditorListener
在接口CellEditor
中 - 参数:
-
l
- 要移除的监听器
-
getCellEditorListeners
返回添加到此DefaultTreeCellEditor的所有CellEditorListener
的数组。- 返回:
-
所有已添加的
CellEditorListener
或如果未添加任何监听器则返回空数组 - 自:
- 1.4
-
valueChanged
重置lastPath
。- 指定由:
-
valueChanged
在接口TreeSelectionListener
中 - 参数:
-
e
- 描述更改的事件
-
actionPerformed
当计时器触发时发送消息,这将开始编辑会话。- 指定由:
-
actionPerformed
在接口ActionListener
中 - 参数:
-
e
- 要处理的事件
-
setTree
设置当前正在编辑的树。这是为了添加选择监听器所需的。- 参数:
-
newTree
- 要编辑的新树
-
shouldStartEditingTimer
如果event
是MouseEvent
且点击次数为1,则返回true。- 参数:
-
event
- 正在研究的事件 - 返回:
-
event
是否应启动编辑计时器
-
startEditingTimer
protected void startEditingTimer()启动编辑计时器。 -
canEditImmediately
如果event
是null
,或者是一个点击次数> 2且inHitRegion
返回true的MouseEvent
,则返回true。- 参数:
-
event
- 正在研究的事件 - 返回:
-
是否可以为给定的
event
启动编辑
-
inHitRegion
protected boolean inHitRegion(int x, int y) 如果传入位置是从中开始编辑的有效鼠标位置,则返回true。如果x
<=渲染器显示的图标和图标间隙的宽度,则实现为返回false。换句话说,如果用户在渲染器显示的文本部分上单击,则返回true,否则返回false。- 参数:
-
x
- 点的x坐标 -
y
- 点的y坐标 - 返回:
- 如果传入位置是有效的鼠标位置,则返回true
-
determineOffset
protected void determineOffset(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) 确定偏移量。- 参数:
-
tree
- 一个JTree
对象 -
value
- 一个值 -
isSelected
- 选择状态 -
expanded
- 展开状态 -
leaf
- 叶子状态 -
row
- 当前行
-
prepareForEditing
protected void prepareForEditing()在编辑开始之前调用。将editingComponent
添加到editingContainer
中。 -
createContainer
创建容器以管理editingComponent
的放置。- 返回:
- 新的Container对象
-
createTreeCellEditor
如果构造函数中未提供TreeCellEditor
,则调用此方法。返回一个TextField
编辑器。- 返回:
-
一个新的
TextField
编辑器
-