Java 扩展Swing的UndoManager以提供重复和多次撤消/重做
我的任务是在应用程序中添加撤销/重做/重复功能。我目前正在调查是否可以使用Swing的UndoManager 除了通常的撤消和重做按钮外,我还需要提供一次撤消或重做多个编辑的功能,如MS Office下拉UI,并重复所选的编辑 我相信我可以使用UndoManager进行多次撤消和重做。它提供了多次撤消和重做的方法。要构建UI,我可以扩展UndoManager以公开它所包含的编辑 但是,我不确定是否可以使用UndoManager进行重复选择的操作。我的第一个想法是扩展UndoManager并添加repeatedit方法。此方法将克隆或复制编辑,重做副本,然后将副本放在撤消堆栈的顶部。编辑只有在实现Clonable时才是可重复的 这似乎合理吗?有更好的解决方案吗?我是不是应该自己滚球而不是滚球?提前谢谢 希望这有帮助Java 扩展Swing的UndoManager以提供重复和多次撤消/重做,java,swing,undo,undo-redo,Java,Swing,Undo,Undo Redo,我的任务是在应用程序中添加撤销/重做/重复功能。我目前正在调查是否可以使用Swing的UndoManager 除了通常的撤消和重做按钮外,我还需要提供一次撤消或重做多个编辑的功能,如MS Office下拉UI,并重复所选的编辑 我相信我可以使用UndoManager进行多次撤消和重做。它提供了多次撤消和重做的方法。要构建UI,我可以扩展UndoManager以公开它所包含的编辑 但是,我不确定是否可以使用UndoManager进行重复选择的操作。我的第一个想法是扩展UndoManager并添加r
撤消管理器支持无限数量的撤消/重做操作。看
在我看来,扩展UndoManager以添加对重复的支持是合理的,因为最后一次编辑已经存在。您好,谢谢您的链接。这显示了如何对编辑进行分组,而不是如何重复编辑。我需要重复的是;在显示“撤消”堆栈的编辑历史的UI中,用户可以选择要重复的任何一个显示的编辑。这与重做不同。应复制重复编辑并将其放置在撤消堆栈的顶部。因为编辑存储状态;e、 例如,一个编辑只有在被撤销的情况下才能重做,我不能简单地对所选的编辑调用重做。我真的需要一份编辑副本。恐怕没有自动重复功能。例如,我从文档中删除所有内容,并希望重复。该怎么办?或者我在0位置插入了1个字符。当我重复应该发生什么?插入0还是插入1?有很多问题没有答案。