我在我的Swing應用程序中使用UndoManager。 如果在UndoManager上調用undo()
,redo()
,addEdit()
或其他方法,最終必須啓用或禁用撤銷和重做按鈕。撤消管理器的觀察
我找不到在這些方法調用中作出反應的方法。似乎沒有爲此目的實施Observer或Listener模式。
每次調用UndoManager方法時,都要更新Undo和Redo按鈕的啓用屬性......這不是最佳實踐?!
一個例子:
- 編輯>插入件 - 增加一個編輯到的UndoManager
- 編輯>切 - 增加一個編輯到的UndoManager
在兩種情況下,撤銷按鈕必須啓用(如果它尚未)。 我需要一種方式來反應所有這些在UndoManager的變化!
也許有比子類的UndoManager並添加兩個方法,沒有更好的辦法:'addHistoryChangeListener(聽衆)'和'removeHistoryChangeListener(聽衆)'。每當'UndoableEdit'列表發生變化時,監聽器都會被通知。這樣我可以反應,並啓用或禁用撤消/重做按鈕。 – schoettl