欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

在JTextArea中实现Redo和Undo功能,jtextarearedo,在JTextArea中实

来源: javaer 分享于  点击 41745 次 点评:87

在JTextArea中实现Redo和Undo功能,jtextarearedo,在JTextArea中实


在JTextArea中实现Redo和Undo功能,其实真正操控Undo、Redo功能的是Document、UndoManager,下面是实现代码:

import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.event.UndoableEditEvent;import javax.swing.text.Document;import javax.swing.undo.UndoManager;/** * 在JTextArea中实现Redo和Undo功能 * @author 五斗米 <如转载请保留作者和出处> * @blog <a href="http://blog.csdn.net/mq612">http://blog.csdn.net/mq612 */public class Test extends JFrame { private static final long serialVersionUID = -2397593626990759111L; private JPanel pane = null; private JButton undo = null, redo = null; private JScrollPane sPane = null; private JTextArea text = null; private Document doc = null; private UndoManager undomang = null; public Test() {  super("Redo and Undo");  undomang = new UndoManager(){   private static final long serialVersionUID = -5960092671497318496L;   public void undoableEditHappened(UndoableEditEvent e) {    this.addEdit(e.getEdit());   }  };  text = new JTextArea();  doc = text.getDocument();  redo = new JButton(">>");  undo = new JButton("<<");  undo.addActionListener(new ActionListener() {   public void actionPerformed(ActionEvent arg0) {    if (undomang.canUndo())     undomang.undo();   }  });  redo.addActionListener(new ActionListener() {   public void actionPerformed(ActionEvent e) {    if (undomang.canRedo())     undomang.redo();   }  });  pane = new JPanel();  pane.add(undo);  pane.add(redo);  doc.addUndoableEditListener(undomang);  sPane = new JScrollPane(text);  this.getContentPane().add(sPane);  this.getContentPane().add(pane, BorderLayout.NORTH);  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  this.setSize(300, 200);  this.setVisible(true); } public static void main(String args[]) {  new Test(); }}//该片段来自于http://byrx.net
相关栏目:

用户点评