Module java.desktop
Package javax.swing

Interface CellEditor

所有已知的子接口:
TableCellEditor, TreeCellEditor
所有已知的实现类:
AbstractCellEditor, DefaultCellEditor, DefaultTreeCellEditor

public interface CellEditor
该接口定义了任何通用编辑器应该能够实现的方法。

拥有这个接口使得复杂组件(编辑器的客户端)如JTreeJTable能够允许任何通用编辑器编辑表格单元格、树单元格等的值。如果没有这个通用编辑器接口,JTable将不得不了解特定的编辑器,比如JTextFieldJCheckBoxJComboBox等。此外,如果没有这个接口,像JTable这样的编辑器的客户端将无法与用户或第三方ISV未来开发的任何编辑器一起使用。

要使用这个接口,创建新编辑器的开发人员可以让新组件实现该接口。或者开发人员可以选择基于包装器的方法,并提供一个实现CellEditor接口的伴随对象(例如参见DefaultCellEditor)。如果用户想要在JTable中使用第三方ISV编辑器,但该ISV没有实现CellEditor接口,那么包装器方法特别有用。用户可以简单地创建一个包含第三方编辑器对象实例的对象,并将CellEditor API“转换”为第三方编辑器的API。

自版本:
1.2
参见:
  • Method Details

    • getCellEditorValue

      Object getCellEditorValue()
      返回编辑器中包含的值。
      返回:
      编辑器中包含的值
    • isCellEditable

      boolean isCellEditable(EventObject anEvent)
      询问编辑器是否可以使用anEvent开始编辑。 anEvent在调用组件的坐标系中。编辑器不能假设由getCellEditorComponent返回的组件已安装。此方法旨在供客户端使用,以避免如果无法编辑,则设置和安装编辑器组件的成本。如果可以开始编辑,则此方法返回true。
      参数:
      anEvent - 编辑器应使用的事件来考虑是否开始编辑
      返回:
      如果可以开始编辑,则返回true
      参见:
    • shouldSelectCell

      boolean shouldSelectCell(EventObject anEvent)
      如果应选择编辑单元格,则返回true,否则返回false。通常情况下,返回值为true,因为在大多数情况下应选择编辑单元格。但是,为了保持某些类型编辑时选择不改变,返回false是有用的。例如,在包含复选框列的表格中,用户可能希望能够更改这些复选框而不更改选择。(请参见Netscape Communicator中的一个例子)当然,客户端可以使用返回值,但如果不想使用,则不需要使用。
      参数:
      anEvent - 编辑器应使用的事件来开始编辑
      返回:
      如果编辑器希望选择编辑单元格,则返回true;否则返回false
      参见:
    • stopCellEditing

      boolean stopCellEditing()
      告诉编辑器停止编辑并接受任何部分编辑的值作为编辑器的值。如果编辑未停止,则编辑器返回false;这对于验证并且不能接受无效输入的编辑器是有用的。
      返回:
      如果编辑已停止,则返回true;否则返回false
    • cancelCellEditing

      void cancelCellEditing()
      告诉编辑器取消编辑并不接受任何部分编辑的值。
    • addCellEditorListener

      void addCellEditorListener(CellEditorListener l)
      向列表添加一个在编辑器停止或取消编辑时通知的监听器。
      参数:
      l - CellEditorListener
    • removeCellEditorListener

      void removeCellEditorListener(CellEditorListener l)
      从通知列表中删除一个监听器
      参数:
      l - CellEditorListener