- java.lang.Object
-
- javax.swing.tree.DefaultTreeCellEditor
-
- All Implemented Interfaces:
-
ActionListener
,EventListener
,CellEditor
,TreeSelectionListener
,TreeCellEditor
public class DefaultTreeCellEditor extends Object implements ActionListener, TreeCellEditor, TreeSelectionListener
ATreeCellEditor
。 您需要提供DefaultTreeCellRenderer
的实例,以便可以获取图标。 您可以选择提供一个TreeCellEditor
,这个TreeCellEditor
将根据DefaultTreeCellRenderer
的图标进行DefaultTreeCellRenderer
。 如果您不提供TreeCellEditor
,将使用TextField
。 编辑是通过三点鼠标点击,点击,暂停,点击和延迟1200毫秒来启动的。警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4版本开始,支持所有JavaBeans的长期存储已被添加到
java.beans
包中。 请参阅XMLEncoder
。- 另请参见:
-
JTree
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 class
DefaultTreeCellEditor.DefaultTextField
当不提供编辑器时使用TextField
。class
DefaultTreeCellEditor.EditorContainer
集装箱负责放置editingComponent
。
-
Field Summary
Fields Modifier and Type Field 描述 protected Color
borderSelectionColor
如果绘制边框选择颜色,则为真。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
实例也听。
-
构造方法摘要
构造方法 Constructor 描述 DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer)
使用指定的渲染器和默认编辑器为JTree构造一个DefaultTreeCellEditor
对象。DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer, TreeCellEditor editor)
使用指定的渲染器和指定的编辑器为一个JTree
构造一个DefaultTreeCellEditor
对象。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 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
如果绘制边框选择颜色,则为真。
-
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
- 另请参见:
-
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)
如果返回trueevent
为null
,或者它是一个MouseEvent
与点击计数> 2inHitRegion
返回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
编辑
-
-