本教程是针对JDK 8编写的。本页中描述的示例和实践不会利用后续版本中引入的改进,并可能使用已不再可用的技术。
请参阅Java语言更改以了解Java SE 9及后续版本中更新的语言特性的摘要。
请参阅JDK发布说明以获取有关所有JDK版本的新功能、增强功能和已删除或弃用选项的信息。
可撤销的编辑事件发生在组件上发生可以撤销的操作时。目前,只有文本组件会触发可撤销的编辑事件,而且只是间接地触发。文本组件的文档会触发这些事件。对于文本组件,可撤销的操作包括插入字符、删除字符和修改文本的样式。程序通常监听可撤销的编辑事件来帮助实现撤销和重做命令。
下面是一个名为TextComponentDemo
的应用程序中的可撤销编辑事件处理代码。
... // 初始化处 document.addUndoableEditListener(new MyUndoableEditListener()); ... protected class MyUndoableEditListener implements UndoableEditListener { public void undoableEditHappened(UndoableEditEvent e) { // 记录编辑并更新菜单 undo.addEdit(e.getEdit()); undoAction.updateUndoState(); redoAction.updateRedoState(); } }
你可以在Swing组件使用示例索引中找到TextComponentDemo
的源文件链接。有关程序中可撤销编辑监听器的讨论,请参阅实现撤销和重做。
由于UndoableEditListener
只有一个方法,因此它没有相应的适配器类。
方法 | 目的 |
---|---|
undoableEditHappened(UndoableEditEvent) | 当监听的组件上发生可撤销的事件时调用。 |
方法 | 目的 |
---|---|
Object getSource() (在 java.util.EventObject 中) |
返回触发事件的对象。 |
UndoableEdit getEdit() | 返回表示发生的编辑的UndoableEdit 对象,并包含有关撤消或重做编辑的信息和命令。 |
以下表格列出了使用可撤销编辑监听器的示例。
示例 | 描述位置 | 注释 |
---|---|---|
TextComponentDemo |
实现撤销和重做 | 通过可撤销编辑监听器,在文本窗格上实现撤销和重做功能。 |