我正在使用Java swing制作一个文本编辑器。我也在使用JTextArea做同样的事情。我想知道如何在JTextArea中使用撤消和重做功能,因为我无法使用它。
发布于 2010-03-31 02:03:16
据我所知,JTextArea没有内置的撤消/重做功能,但Google search确实发现了this article,这可能是有帮助的。
显然,在javax.swing中存在一个Undo Manager,您可以将其与JTextArea的更改事件挂钩。
发布于 2015-01-06 15:34:11
你可以这样做
UndoManager manager = new UndoManager();
textArea.getDocument().addUndoableEditListener(manager);一旦管理器被附加到JTextArea的文档,它将监视对文本区内容的所有更改。
将管理器附加到文本组件后,必须提供一些方法来告诉管理器撤消/重做操作。
在必要时调用UndoManager的公共void undo()和public void redo()方法(例如,动作监听器的actionPerformed()方法)
可以通过以下方式将Action对象附加到按钮,而不是调用undo()和redo()方法,这将简化任务:
JButton undoButton = new JButton(UndoManagerHelper.getUndoAction(manager));
JButton redoButton = new JButton(UndoManagerHelper.getRedoAction(manager));发布于 2010-03-31 02:01:06
我已经有一段时间没有这样做了,我不记得细节了,但这里有一些信息的链接:http://java.sun.com/docs/books/tutorial/uiswing/components/generaltext.html
向下滚动到标题为“侦听文档更改”的部分即可开始。
https://stackoverflow.com/questions/2547404
复制相似问题