现在正在做的项目中,就有undo、redo的操作。使用的是java本身的undoManager。但是因为使用的第三方软件包已经把它封装过了,所以用起来并不是直接使用java的undomanager。其间,遇到这样的问题:有些操作不想被undo所管理,但是图形上的变换却总是会被listener加入到undo的edits中。想了很多办法,包括继承再封装undomanager将edits传出来保存,需要恢复的时候再设进去、discard所有的edits、找寻第三方软件封装undoableEdit的方法,以使得操作不被undo....最后,用最简单的方法解决问题:设置一个boolean变量,然后重载listener的方法,用这个变量来控制是否调用super.undoableEditHappened即可。 唉,真笨啊,用这么简单的问题都能解决的,搞了老半天...
----------------------------
A ja A ja, fighting fighting
posted on 2007-01-17 13:24
托托姆 阅读(431)
评论(0) 编辑 收藏