首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对JTextArea使用撤消和重做

对JTextArea使用撤消和重做
EN

Stack Overflow用户
提问于 2010-03-31 01:55:14
回答 5查看 10.6K关注 0票数 11

我正在使用Java swing制作一个文本编辑器。我也在使用JTextArea做同样的事情。我想知道如何在JTextArea中使用撤消和重做功能,因为我无法使用它。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-31 02:03:16

据我所知,JTextArea没有内置的撤消/重做功能,但Google search确实发现了this article,这可能是有帮助的。

显然,在javax.swing中存在一个Undo Manager,您可以将其与JTextArea的更改事件挂钩。

票数 13
EN

Stack Overflow用户

发布于 2015-01-06 15:34:11

你可以这样做

代码语言:javascript
复制
UndoManager manager = new UndoManager();
textArea.getDocument().addUndoableEditListener(manager);

一旦管理器被附加到JTextArea的文档,它将监视对文本区内容的所有更改。

将管理器附加到文本组件后,必须提供一些方法来告诉管理器撤消/重做操作。

在必要时调用UndoManager的公共void undo()和public void redo()方法(例如,动作监听器的actionPerformed()方法)

可以通过以下方式将Action对象附加到按钮,而不是调用undo()和redo()方法,这将简化任务:

代码语言:javascript
复制
JButton undoButton = new JButton(UndoManagerHelper.getUndoAction(manager));
JButton redoButton = new JButton(UndoManagerHelper.getRedoAction(manager));
票数 6
EN

Stack Overflow用户

发布于 2010-03-31 02:01:06

我已经有一段时间没有这样做了,我不记得细节了,但这里有一些信息的链接:http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html

向下滚动到标题为“侦听文档更改”的部分即可开始。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2547404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档