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