現(xiàn)在正在做的項目中,就有undo、redo的操作。使用的是java本身的undoManager。但是因為使用的第三方軟件包已經(jīng)把它封裝過了,所以用起來并不是直接使用java的undomanager。其間,遇到這樣的問題:有些操作不想被undo所管理,但是圖形上的變換卻總是會被listener加入到undo的edits中。想了很多辦法,包括繼承再封裝undomanager將edits傳出來保存,需要恢復(fù)的時候再設(shè)進去、discard所有的edits、找尋第三方軟件封裝undoableEdit的方法,以使得操作不被undo....最后,用最簡單的方法解決問題:設(shè)置一個boolean變量,然后重載listener的方法,用這個變量來控制是否調(diào)用super.undoableEditHappened即可。 唉,真笨啊,用這么簡單的問題都能解決的,搞了老半天...
----------------------------
A ja A ja, fighting fighting
posted on 2007-01-17 13:24
托托姆 閱讀(431)
評論(0) 編輯 收藏