Module java.desktop
Package javax.swing.tree

Class DefaultTreeCellEditor

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

参见:
  • Field Details

    • 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
      用于编辑。指示放置editingComponent的x位置。
    • 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表示将使用渲染器的字体。
  • Constructor Details

    • 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对象
  • Method Details

    • setBorderSelectionColor

      public void setBorderSelectionColor(Color newColor)
      设置用于边框的颜色。
      参数:
      newColor - 新的边框颜色
    • getBorderSelectionColor

      public Color getBorderSelectionColor()
      返回绘制边框的颜色。
      返回:
      边框选择颜色
    • setFont

      public void setFont(Font font)
      设置用于编辑的字体。 null表示应使用渲染器的字体。这不会覆盖您在实例化接收器时设置的任何字体。如果为编辑器传递了null,将创建一个默认编辑器,该编辑器将使用此字体。
      参数:
      font - 编辑的Font
      参见:
    • getFont

      public 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

      public Object getCellEditorValue()
      返回当前正在编辑的值。
      指定者:
      getCellEditorValue 在接口 CellEditor
      返回:
      当前正在编辑的值
    • isCellEditable

      public boolean isCellEditable(EventObject event)
      如果realEditor对此消息返回true,则发送prepareForEditing消息并返回true。
      指定者:
      isCellEditable 在接口 CellEditor
      参数:
      event - 编辑器应使用的事件,以确定是否开始编辑
      返回:
      如果可以开始编辑,则为true
      参见:
    • shouldSelectCell

      public boolean shouldSelectCell(EventObject event)
      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

      public void addCellEditorListener(CellEditorListener l)
      添加CellEditorListener
      指定由:
      addCellEditorListener 在接口 CellEditor
      参数:
      l - 要添加的监听器
    • removeCellEditorListener

      public void removeCellEditorListener(CellEditorListener l)
      删除先前添加的CellEditorListener
      指定由:
      removeCellEditorListener 在接口 CellEditor
      参数:
      l - 要移除的监听器
    • getCellEditorListeners

      public CellEditorListener[] getCellEditorListeners()
      返回添加到此DefaultTreeCellEditor的所有CellEditorListener的数组。
      返回:
      所有已添加的CellEditorListener或如果未添加任何监听器则返回空数组
      自:
      1.4
    • valueChanged

      public void valueChanged(TreeSelectionEvent e)
      重置lastPath
      指定由:
      valueChanged 在接口 TreeSelectionListener
      参数:
      e - 描述更改的事件
    • actionPerformed

      public void actionPerformed(ActionEvent e)
      当计时器触发时发送消息,这将开始编辑会话。
      指定由:
      actionPerformed 在接口 ActionListener
      参数:
      e - 要处理的事件
    • setTree

      protected void setTree(JTree newTree)
      设置当前正在编辑的树。这是为了添加选择监听器所需的。
      参数:
      newTree - 要编辑的新树
    • shouldStartEditingTimer

      protected boolean shouldStartEditingTimer(EventObject event)
      如果eventMouseEvent且点击次数为1,则返回true。
      参数:
      event - 正在研究的事件
      返回:
      event是否应启动编辑计时器
    • startEditingTimer

      protected void startEditingTimer()
      启动编辑计时器。
    • canEditImmediately

      protected boolean canEditImmediately(EventObject event)
      如果eventnull,或者是一个点击次数> 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

      protected Container createContainer()
      创建容器以管理editingComponent的放置。
      返回:
      新的Container对象
    • createTreeCellEditor

      protected TreeCellEditor createTreeCellEditor()
      如果构造函数中未提供TreeCellEditor,则调用此方法。返回一个TextField编辑器。
      返回:
      一个新的TextField编辑器