2

我的任务是向应用程序添加撤消/重做/重复功能。我目前正在调查是否可以使用 Swing 的 UndoManager。

除了通常的撤消和重做按钮之外,我还需要提供一次撤消或重做多个编辑的功能(下拉 UI,如 MS Office),并重复选择的编辑。

我相信我可以使用 UndoManager 进行多次撤消和重做。它提供了多次撤消和重做的方法。为了构建 UI,我可以扩展 UndoManager 以公开它所拥有的编辑。

但是,我不确定是否可以使用 UndoManager 重复选择的操作。我的第一个想法是扩展 UndoManager 并添加一个重复(编辑)方法。此方法将克隆或复制编辑,重做副本,然后将副本放在撤消堆栈的顶部。只有实现 Clonable 时,编辑才能重复。

这看起来合理吗?有更好的解决方案吗?我应该自己滚动而不是 UndoManager 吗?提前致谢。

4

2 回答 2

5

希望这有助于 http://java-sl.com/tip_merge_undo_edits.html

于 2012-09-10T12:29:05.230 回答
0

UndoManager 支持无限数量的撤消/重做操作。请参阅文档

对我来说扩展 UndoManager 以添加对重复的支持似乎是合理的,因为最后一次编辑已经存在。

于 2012-09-10T17:35:14.397 回答