五十七:Swing库中的命令撤消和恢复

本文探讨了视窗应用程序中命令模式的应用特点,包括命令与GUI的分离、命令对象的设计等,并介绍了Swing提供的撤消和恢复功能实现方式,涉及UndoableEdit接口、AbstractUndoableEdit类及UndoManager类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在视窗应用程序里使用命令模式,可以有如下的特点:
(1)使命令所代表的操作与用户GUI界面分开
(2)可以把相关的操作与单个的命令对象结合在一起
(3)每一个按键都应当有它单独的类
(4)由于命令对象需要与用户GUI界面发生关系,所以命令类要么是用户GUI界面类的内部类,要么是外部类,如果命

令类是用户GUI界面的内部类,那么命令类当然可以得到GUI界面的私有属性.
如果命令类是独立的外部类,那么为使命令类得到GUI界面类的内部字段,可以有两种方法:第一种是提供公开方法

,以便外界能够得到内部字段,第二是通过命令类的构造子传入。第一种方法不好,它打破了封装的原则,把本该私

有的变量向所有的外部类公开。第二种方法是本书所推荐的方法
命令的撤消和恢复对很多系统,特别是文字或图像文件系统来说都是非常重要的,Swing在javax.swing.undo库里提

供了撤消和恢复的系统化处理方法。 javax.swing.undo库虽然是Swing库的一部分,但它既可以与Swing构件一起使用

,又可以与AWT构件一起使用,甚至可以在根本没有视窗构件的系统里使用.

一:Swing的基本撤消功能
每一个命令或操作在Swing里都叫做一个编辑(Edit),每一个可撤消的命令或操作在Swing里都叫做一个可撤消

(UndoableEdit),Swing的撤消和恢复功能都是通过下面的接口和类实现的:
(1)接口UndoableEdit,一个类如果需要有撤消和恢复功能的话就需要实现UndoableEdit接口
(2)抽象类AbstractUndoableEdit是对UndoableEdit接口的最小实现,也是javax.swing.undo库里其他类的基类
(3)接口StateEditable是所有的可以编辑的类必须实现的接口
(4)StateEdit类代表一个可编辑的状态
(5)UndoManager类负责管理所有的对一个可编辑类的编辑
具体可以参巧jdk源码...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值