文档

Java™ 教程
隐藏目录
如何编写可撤销的编辑监听器
路径:使用Swing创建GUI
教程:编写事件监听器
章节:实现常用事件的监听器

如何编写可撤销编辑的监听器

可撤销的编辑事件发生在组件上发生可以撤销的操作时。目前,只有文本组件会触发可撤销的编辑事件,而且只是间接地触发。文本组件的文档会触发这些事件。对于文本组件,可撤销的操作包括插入字符、删除字符和修改文本的样式。程序通常监听可撤销的编辑事件来帮助实现撤销和重做命令。

下面是一个名为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的源文件链接。有关程序中可撤销编辑监听器的讨论,请参阅实现撤销和重做

可撤销编辑监听器API

可撤销编辑监听器接口

由于UndoableEditListener只有一个方法,因此它没有相应的适配器类。

方法 目的
undoableEditHappened(UndoableEditEvent) 当监听的组件上发生可撤销的事件时调用。

可撤销编辑事件类

方法 目的
Object getSource()
(java.util.EventObject)
返回触发事件的对象。
UndoableEdit getEdit() 返回表示发生的编辑的UndoableEdit对象,并包含有关撤消或重做编辑的信息和命令。

使用可撤销编辑监听器的示例

以下表格列出了使用可撤销编辑监听器的示例。

示例 描述位置 注释
TextComponentDemo 实现撤销和重做 通过可撤销编辑监听器,在文本窗格上实现撤销和重做功能。

上一页: 如何编写树展开监听器
下一页: 如何编写窗口监听器