扩展Swing的UndoManager以提供重复和多次撤消/重做

时间:2012-09-10 12:19:55

标签: java swing undo undo-redo

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

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

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

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

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

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:0)

UndoManager支持无限数量的撤消/重做操作。见the documentation

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