2008-11-28 65 views
0
Undo功能一些幫助

我寫的與Java文本編輯器,我想撤銷功能添加到它我需要在Java中

,但沒有的UndoManager類,我需要使用像堆棧或LinkedList的,但數據結構Java中的Stack類使用Object參數,例如:push(Object o),Not Push(String s) 我需要一些提示或鏈接。 謝謝

回答

7

假設你使用Java 5,堆棧是一個通用類。你可以根據它應該保存的對象來實例化它。

然後,您可以使用:

Stack<String> stack = new Stack<String>(); 
String string = "someString"; 
stack.push(string); 

另外請注意,您使用的是Java 1.4或以下,你仍然可以把字符串對象入堆棧的情況。只有你將需要明確垂頭喪氣他們當你彈出()出來,像這樣:

Stack stack = new Stack(); 
String string = "someString"; 
stack.push(string); 

String popString = (String) stack.pop(); // pop() returns an Object which needs to be downcasted 
3

「數據結構」,這實際上是一種模式,被稱爲Memento。當您需要存儲多個狀態並且可以選擇回到以前的狀態時,這很有用。對於狀態的高效數據存儲取決於你正在做什麼樣的文本編輯器,如果可以做一些格式化,然後看看Flyweight模式。

1

嗯...

似乎有點像RTFM對我;-)

的情況下,如果你使用的是Java 1.4.2你只需要明確cast你的對象,當你從你的籌碼讓他們:

Command cmd = (Command) stack.pop(); // same for peek() etc. 

如果您使用的是Java 1.5,利用Generics,並且還將有無需顯式類型轉換。

0

好吧,我解決它

我必須

謝謝你們

推文中textarea的不是從鍵盤的字符