- 所有已知的子接口:
-
TableCellEditor
,TreeCellEditor
- 所有已知的实现类:
-
AbstractCellEditor
,DefaultCellEditor
,DefaultTreeCellEditor
public interface CellEditor
该接口定义了任何通用编辑器应该能够实现的方法。
拥有这个接口使得复杂组件(编辑器的客户端)如JTree
和JTable
能够允许任何通用编辑器编辑表格单元格、树单元格等的值。如果没有这个通用编辑器接口,JTable
将不得不了解特定的编辑器,比如JTextField
、JCheckBox
、JComboBox
等。此外,如果没有这个接口,像JTable
这样的编辑器的客户端将无法与用户或第三方ISV未来开发的任何编辑器一起使用。
要使用这个接口,创建新编辑器的开发人员可以让新组件实现该接口。或者开发人员可以选择基于包装器的方法,并提供一个实现CellEditor
接口的伴随对象(例如参见DefaultCellEditor
)。如果用户想要在JTable
中使用第三方ISV编辑器,但该ISV没有实现CellEditor
接口,那么包装器方法特别有用。用户可以简单地创建一个包含第三方编辑器对象实例的对象,并将CellEditor
API“转换”为第三方编辑器的API。
- 自版本:
- 1.2
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
向列表添加一个在编辑器停止或取消编辑时通知的监听器。void
告诉编辑器取消编辑并不接受任何部分编辑的值。返回编辑器中包含的值。boolean
isCellEditable
(EventObject anEvent) 询问编辑器是否可以使用anEvent
开始编辑。void
从通知列表中删除一个监听器boolean
shouldSelectCell
(EventObject anEvent) 如果应选择编辑单元格,则返回true,否则返回false。boolean
告诉编辑器停止编辑并接受任何部分编辑的值作为编辑器的值。
-
Method Details
-
getCellEditorValue
Object getCellEditorValue()返回编辑器中包含的值。- 返回:
- 编辑器中包含的值
-
isCellEditable
询问编辑器是否可以使用anEvent
开始编辑。anEvent
在调用组件的坐标系中。编辑器不能假设由getCellEditorComponent
返回的组件已安装。此方法旨在供客户端使用,以避免如果无法编辑,则设置和安装编辑器组件的成本。如果可以开始编辑,则此方法返回true。- 参数:
-
anEvent
- 编辑器应使用的事件来考虑是否开始编辑 - 返回:
- 如果可以开始编辑,则返回true
- 参见:
-
shouldSelectCell
如果应选择编辑单元格,则返回true,否则返回false。通常情况下,返回值为true,因为在大多数情况下应选择编辑单元格。但是,为了保持某些类型编辑时选择不改变,返回false是有用的。例如,在包含复选框列的表格中,用户可能希望能够更改这些复选框而不更改选择。(请参见Netscape Communicator中的一个例子)当然,客户端可以使用返回值,但如果不想使用,则不需要使用。- 参数:
-
anEvent
- 编辑器应使用的事件来开始编辑 - 返回:
- 如果编辑器希望选择编辑单元格,则返回true;否则返回false
- 参见:
-
stopCellEditing
boolean stopCellEditing()告诉编辑器停止编辑并接受任何部分编辑的值作为编辑器的值。如果编辑未停止,则编辑器返回false;这对于验证并且不能接受无效输入的编辑器是有用的。- 返回:
- 如果编辑已停止,则返回true;否则返回false
-
cancelCellEditing
void cancelCellEditing()告诉编辑器取消编辑并不接受任何部分编辑的值。 -
addCellEditorListener
向列表添加一个在编辑器停止或取消编辑时通知的监听器。- 参数:
-
l
- CellEditorListener
-
removeCellEditorListener
从通知列表中删除一个监听器- 参数:
-
l
- CellEditorListener
-