- java.lang.Object
-
- javax.swing.tree.DefaultTreeCellEditor
-
- 实现的所有接口
-
ActionListener
,EventListener
,CellEditor
,TreeSelectionListener
,TreeCellEditor
public class DefaultTreeCellEditor extends Object implements ActionListener, TreeCellEditor, TreeSelectionListener
ATreeCellEditor
。 您需要提供DefaultTreeCellRenderer
的实例,以便可以获取图标。 您可以选择提供一个TreeCellEditor
,将根据在该图标奠定了DefaultTreeCellRenderer
。 如果您不提供TreeCellEditor
,将使用TextField
。 只需单击三次鼠标,或单击,暂停,单击并延迟1200毫秒即可开始编辑。警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始,对
java.beans
软件包中添加了对所有JavaBeansjava.beans
长期存储的支持。 请参阅XMLEncoder
。- 另请参见:
-
JTree
-
-
嵌套类汇总
嵌套类 变量和类型 类 描述 class
DefaultTreeCellEditor.DefaultTextField
在没有提供编辑器时使用TextField
。class
DefaultTreeCellEditor.EditorContainer
容器负责放置editingComponent
。
-
字段汇总
字段 变量和类型 字段 描述 protected Color
borderSelectionColor
如果应绘制边框选择颜色,则为True。protected boolean
canEdit
从Java 2平台v1.4开始,不再使用此字段。protected Component
editingComponent
用于编辑的组件,从editingContainer
获得。protected Container
editingContainer
编辑容器,将包含editorComponent
。protected Icon
editingIcon
编辑时使用的图标。protected Font
font
要绘制的字体,null
表示要使用的渲染器字体。protected TreePath
lastPath
选择的最后一条路径。protected int
lastRow
最后传入getTreeCellEditorComponent
。protected int
offset
用于编辑。protected TreeCellEditor
realEditor
处理编辑的编辑。protected DefaultTreeCellRenderer
renderer
渲染器,用于获取边界和偏移。protected Timer
timer
在开始编辑会话之前使用。protected JTree
tree
JTree
实例也在听。
-
构造方法摘要
构造方法 构造器 描述 DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer)
使用指定的渲染器和默认编辑器为JTree构造一个DefaultTreeCellEditor
对象。DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer, TreeCellEditor editor)
使用指定的渲染器和指定的编辑器为JTree
构造一个DefaultTreeCellEditor
对象。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
actionPerformed(ActionEvent e)
在计时器触发时传递消息,这将启动编辑会话。void
addCellEditorListener(CellEditorListener l)
添加CellEditorListener
。void
cancelCellEditing()
消息cancelCellEditing
到realEditor
并将其从此实例中删除。protected boolean
canEditImmediately(EventObject event)
如果返回trueevent
为null
,或者它是一个MouseEvent
与点击计数> 2inHitRegion
返回true。protected Container
createContainer()
创建容器以管理editingComponent
放置。protected TreeCellEditor
createTreeCellEditor()
如果构造函数中未提供TreeCellEditor
则调用此方法。protected void
determineOffset(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)
确定偏移量。Color
getBorderSelectionColor()
返回绘制边框的颜色。CellEditorListener[]
getCellEditorListeners()
返回使用addCellEditorListener()添加到此DefaultTreeCellEditor的所有CellEditorListener
的数组。Object
getCellEditorValue()
返回当前正在编辑的值。Font
getFont()
获取用于编辑的字体。Component
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
prepareForEditing()
在编辑之前调用即开始。void
removeCellEditorListener(CellEditorListener l)
删除以前添加的CellEditorListener
。void
setBorderSelectionColor(Color newColor)
设置用于边框的颜色。void
setFont(Font font)
设置要编辑的字体。protected void
setTree(JTree newTree)
设置当前正在编辑的树。boolean
shouldSelectCell(EventObject event)
向realEditor
返回值的消息。protected boolean
shouldStartEditingTimer(EventObject event)
如果event
是MouseEvent
且点击次数为1,则返回true。protected void
startEditingTimer()
启动编辑计时器。boolean
stopCellEditing()
如果realEditor
允许编辑停止,则删除realEditor
并返回true,否则返回false。void
valueChanged(TreeSelectionEvent e)
重置lastPath
。
-
-
-
字段详细信息
-
realEditor
protected TreeCellEditor realEditor
处理编辑的编辑。
-
renderer
protected DefaultTreeCellRenderer renderer
渲染器,用于获取边界和偏移。
-
editingContainer
protected Container editingContainer
编辑容器,将包含editorComponent
。
-
editingComponent
protected transient Component editingComponent
用于编辑的组件,从editingContainer
获得。
-
canEdit
protected boolean canEdit
从Java 2平台v1.4开始,不再使用此字段。 如果您希望提供类似的行为,则应直接覆盖isCellEditable
。
-
offset
protected transient int offset
用于编辑。 表示要放置的x位置editingComponent
。
-
tree
protected transient JTree tree
JTree
实例也在听。
-
lastPath
protected transient TreePath lastPath
选择的最后一条路径。
-
timer
protected transient Timer timer
在开始编辑会话之前使用。
-
lastRow
protected transient int lastRow
最后传入getTreeCellEditorComponent
。
-
borderSelectionColor
protected Color borderSelectionColor
如果应绘制边框选择颜色,则为True。
-
editingIcon
protected transient Icon editingIcon
编辑时使用的图标。
-
font
protected Font font
要绘制的字体,null
表示要使用的渲染器字体。
-
-
构造方法详细信息
-
DefaultTreeCellEditor
public DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer)
使用指定的渲染器和默认编辑器为JTree构造一个DefaultTreeCellEditor
对象。 (使用此构造函数进行正常编辑。)- 参数
-
tree
- 一个JTree
对象 -
renderer
- 一个DefaultTreeCellRenderer
对象
-
DefaultTreeCellEditor
public DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer, TreeCellEditor editor)
使用指定的渲染器和指定的编辑器为JTree
构造一个DefaultTreeCellEditor
对象。 (使用此构造函数进行专门编辑。)- 参数
-
tree
- 一个JTree
对象 -
renderer
- 一个DefaultTreeCellRenderer
对象 -
editor
- 一个TreeCellEditor
对象
-
-
方法详细信息
-
setBorderSelectionColor
public void setBorderSelectionColor(Color newColor)
设置用于边框的颜色。- 参数
-
newColor
- 新的边框颜色
-
getBorderSelectionColor
public Color getBorderSelectionColor()
返回绘制边框的颜色。- 结果
- 边框选择颜色
-
setFont
public void setFont(Font font)
设置要编辑的字体。null
表示应使用渲染器字体。 这不会覆盖您在接收器实例化的编辑器中设置的任何字体。 如果在默认编辑器中传递了编辑器的null
,则将创建将拾取此字体的编辑器。- 参数
-
font
- 编辑Font
- 另请参见:
-
getFont()
-
getFont
public Font getFont()
获取用于编辑的字体。- 结果
-
编辑
Font
- 另请参见:
-
setFont(java.awt.Font)
-
getTreeCellEditorComponent
public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)
配置编辑器。 传递到realEditor
。- Specified by:
-
getTreeCellEditorComponent
接口TreeCellEditor
- 参数
-
tree
- 要求编辑编辑的JTree; 此参数可以为null -
value
- 要编辑的单元格的值 -
isSelected
- 如果要使用选择突出显示单元格,则为true -
expanded
- 如果节点已展开,expanded
true -
leaf
- 如果节点是叶节点,leaf
true -
row
- 正在编辑的节点的行索引 - 结果
- 用于编辑的组件
-
getCellEditorValue
public Object getCellEditorValue()
返回当前正在编辑的值。- Specified by:
-
getCellEditorValue
接口CellEditor
- 结果
- 当前正在编辑的值
-
isCellEditable
public boolean isCellEditable(EventObject event)
如果realEditor
返回true此消息,prepareForEditing
是传递消息并返回true。- Specified by:
-
isCellEditable
接口CellEditor
- 参数
-
event
- 编辑器应该使用的事件来考虑是否开始编辑 - 结果
- 如果可以开始编辑,则为true
- 另请参见:
-
CellEditor.shouldSelectCell(java.util.EventObject)
-
shouldSelectCell
public boolean shouldSelectCell(EventObject event)
向realEditor
返回值的消息。- Specified by:
-
shouldSelectCell
接口CellEditor
- 参数
-
event
- 编辑器用于开始编辑的事件 - 结果
- 如果编辑器想要选择编辑单元,则为true;否则为false。 否则返回false
- 另请参见:
-
CellEditor.isCellEditable(java.util.EventObject)
-
stopCellEditing
public boolean stopCellEditing()
如果realEditor
允许编辑停止,则删除realEditor
并返回true,否则返回false。- Specified by:
-
stopCellEditing
在接口CellEditor
- 结果
- 如果编辑停止,则为true; 否则是假的
-
cancelCellEditing
public void cancelCellEditing()
消息cancelCellEditing
到realEditor
并将其从此实例中删除。- Specified by:
-
cancelCellEditing
接口CellEditor
-
addCellEditorListener
public void addCellEditorListener(CellEditorListener l)
添加CellEditorListener
。- Specified by:
-
addCellEditorListener
接口CellEditor
- 参数
-
l
- 要添加的侦听器
-
removeCellEditorListener
public void removeCellEditorListener(CellEditorListener l)
删除以前添加的CellEditorListener
。- Specified by:
-
removeCellEditorListener
接口CellEditor
- 参数
-
l
- 要删除的侦听器
-
getCellEditorListeners
public CellEditorListener[] getCellEditorListeners()
返回使用addCellEditorListener()添加到此DefaultTreeCellEditor的所有CellEditorListener
的数组。- 结果
-
如果没有添加任何侦听器,则添加所有
CellEditorListener
或空数组 - 从以下版本开始:
- 1.4
-
valueChanged
public void valueChanged(TreeSelectionEvent e)
重置lastPath
。- Specified by:
-
valueChanged
接口TreeSelectionListener
- 参数
-
e
- 表征更改的事件。
-
actionPerformed
public void actionPerformed(ActionEvent e)
在计时器触发时传递消息,这将启动编辑会话。- Specified by:
-
actionPerformed
接口ActionListener
- 参数
-
e
- 要处理的事件
-
setTree
protected void setTree(JTree newTree)
设置当前正在编辑的树。 这是添加选择侦听器所必需的。- 参数
-
newTree
- 要编辑的新树
-
shouldStartEditingTimer
protected boolean shouldStartEditingTimer(EventObject event)
如果event
是MouseEvent
且点击次数为1,则返回true。- 参数
-
event
- 正在研究的事件 - 结果
-
event
是否应该启动编辑计时器
-
startEditingTimer
protected void startEditingTimer()
启动编辑计时器。
-
canEditImmediately
protected boolean canEditImmediately(EventObject event)
如果event
是null
,则返回true;如果点击次数> 2inHitRegion
返回MouseEvent
,并且inHitRegion
返回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
protected Container createContainer()
创建容器以管理editingComponent
放置。- 结果
- 新的Container对象
-
createTreeCellEditor
protected TreeCellEditor createTreeCellEditor()
如果构造函数中未提供TreeCellEditor
则调用此方法。 它返回一个TextField
编辑器。- 结果
-
一个新的
TextField
编辑器
-
-