我需要一些有关 Java 撤消功能的帮助

发布于 2024-07-08 22:00:22 字数 158 浏览 10 评论 0原文

我用Java编写了一个文本编辑器,我想向其中添加撤消功能,

但没有UndoManager类,我需要使用像Stack或LinkedList这样的数据结构,但Java中的Stack类使用对象参数,例如:push(Object o),不推送(字符串) 我需要一些提示或链接。 谢谢

I write a Text Editor with Java , and I want to add Undo function to it

but without UndoManager Class , I need to use a Data Structure like Stack or LinkedList but the Stack class in Java use Object parameters e.g : push(Object o) , Not Push(String s)
I need some hints or links .
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

骑趴 2024-07-15 22:00:22

假设您使用的是 Java 5,Stack 是一个泛型类。 您可以根据它应该保存的对象来实例化它。

然后您可以使用:

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

另请注意,如果您使用的是 Java 1.4 或更低版本,您仍然可以将 String 对象压入堆栈。 只是当您将它们 pop() 出来时,您需要显式地向下转换它们,如下所示:

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

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

Assuming you are using Java 5, Stack is a generic class. You can instantiate it according to the objects it should hold.

You can then use:

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

Also note that in the case you are using Java 1.4 or below, you can still push String objects into the stack. Only that you will need to explicitly downcast them when you pop() them out, like so:

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

String popString = (String) stack.pop(); // pop() returns an Object which needs to be downcasted
幸福%小乖 2024-07-15 22:00:22

“数据结构”实际上是一种模式,称为 Memento。 当您需要存储多个状态并可以选择返回到之前的状态时,它会很有帮助。 对于状态的有效数据存储取决于您正在使用什么样的文本编辑器,如果可以进行一些格式化,那么请看一下 享元模式。

The "data structure", which in fact is a pattern, is called Memento. It is helpful when you need to store multiple states and have the option of going back to a previous state. For efficient data storage of the states depends on what kind of a text editor you are doing, if can do some formatting, then take a look at the Flyweight pattern.

谎言 2024-07-15 22:00:22

嗯...

对我来说有点像 RTFM 的情况;-)

如果您使用 Java 1.4.2,您只需显式 在从堆栈中获取对象时强制转换对象:

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

如果您使用的是 Java 1.5,请使用 泛型 并且不需要显式转换。

Hmmm...

Seems a little like a case of RTFM to me ;-)

If you're using Java 1.4.2 you'll simply have to explicitly cast your objects when you get them from your stack:

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

If you're using Java 1.5, make use of Generics and there will no need for explicit casting.

月光色 2024-07-15 22:00:22

好的,我解决了,

我必须将文本推送到文本区域中,而不是键盘上的字符,

谢谢大家

Ok i solve it

I must push the text in the textArea not the character from the keyboard

thanks guys

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文