- 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 描述 classDefaultTreeCellEditor.DefaultTextField当不提供编辑器时使用TextField。classDefaultTreeCellEditor.EditorContainer集装箱负责放置editingComponent。
-
Field Summary
Fields Modifier and Type Field 描述 protected ColorborderSelectionColor如果绘制边框选择颜色,则为真。protected booleancanEdit从Java 2平台v1.4开始,此字段不再被使用。protected ComponenteditingComponent组件用于编辑,从editingContainer获得。protected ContainereditingContainer编辑容器,将包含editorComponent。protected IconeditingIcon编辑时使用的图标。protected Fontfont要绘制的字体,null表示要使用的渲染器的字体。protected TreePathlastPath所选的最后路径。protected intlastRow最后传入getTreeCellEditorComponent。protected intoffset用于编辑。protected TreeCellEditorrealEditor编辑器处理编辑。protected DefaultTreeCellRendererrenderer渲染器用于获取边框和偏移量。protected Timertimer在开始编辑会话之前使用。protected JTreetreeJTree实例也听。
-
构造方法摘要
构造方法 Constructor 描述 DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer)使用指定的渲染器和默认编辑器为JTree构造一个DefaultTreeCellEditor对象。DefaultTreeCellEditor(JTree tree, DefaultTreeCellRenderer renderer, TreeCellEditor editor)使用指定的渲染器和指定的编辑器为一个JTree构造一个DefaultTreeCellEditor对象。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 voidactionPerformed(ActionEvent e)在定时器触发时消息传送,这将开始编辑会话。voidaddCellEditorListener(CellEditorListener l)添加CellEditorListener。voidcancelCellEditing()消息cancelCellEditing到realEditor并将其从此实例中删除。protected booleancanEditImmediately(EventObject event)如果返回trueevent为null,或者它是一个MouseEvent与点击计数> 2inHitRegion返回true。protected ContainercreateContainer()创建容器管理editingComponent位置。protected TreeCellEditorcreateTreeCellEditor()如果构造函数中没有提供TreeCellEditor则调用此方法。protected voiddetermineOffset(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)确定偏移量。ColorgetBorderSelectionColor()返回绘制边框的颜色。CellEditorListener[]getCellEditorListeners()返回使用addCellEditorListener()添加到该DefaultTreeCellEditor中的所有CellEditorListener的数组。ObjectgetCellEditorValue()返回当前正在编辑的值。FontgetFont()获取用于编辑的字体。ComponentgetTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row)配置编辑器。protected booleaninHitRegion(int x, int y)如果传入的位置是开始编辑的有效的鼠标位置,则返回true。booleanisCellEditable(EventObject event)如果realEditor返回true,则返回prepareForEditing,并返回true。protected voidprepareForEditing()在编辑之前调用即可开始。voidremoveCellEditorListener(CellEditorListener l)删除以前添加的CellEditorListener。voidsetBorderSelectionColor(Color newColor)设置要用于边框的颜色。voidsetFont(Font font)设置要编辑的字体。protected voidsetTree(JTree newTree)设置当前编辑的树。booleanshouldSelectCell(EventObject event)消息realEditor作为返回值。protected booleanshouldStartEditingTimer(EventObject event)如果event是MouseEvent,点击次数为1,则返回true。protected voidstartEditingTimer()启动编辑定时器。booleanstopCellEditing()如果realEditor允许编辑停止,则realEditor被移除,返回true,否则返回false。voidvalueChanged(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- 如果节点被扩展,expandedtrue -
leaf- 如果节点是叶节点,leaftrue -
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编辑
-
-