Home Tutorial Java Swing Java Swing Undo Redo Operations

 
 

Share on Google+Share on Google+
Java Swing Undo Redo Operations
Posted on: May 6, 2010 at 12:00 AM
Advertisement
In this section, you will learn how to implement Undo Redo Opeartions in java swing.

Java Swing Undo Redo Operations

Swing provides Undo and Redo functionality through javax.swing.undo package. The undo mechanisms allow users to unexecute the last action they just performed and using redo, user can re-execute the last undone action. Now, in order to implement these mechanisms, we have created a text area in our class that implements UndoableEditListener interface from javax.swing.event package for getting undoable edit events. The method undoableEditHappened(UndoableEditEvent e) is called to notify the listeners that the undoable edits happened. The typical action in this method is to add the edits to the UndoManager . The UndoManager collects all the edits happened and through the buttons, we have called undo() method of UndoManager to undo the changes and redo() method to redo changes.

Here is the code:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.undo.*;
import javax.swing.text.*;
import javax.swing.event.*;

public class UndoAndRedoOperations extends JFrame {
	JButton b1, b2, b3;
	JTextArea area;
	JScrollPane pane;
	JPanel p;
	UndoManager manager = new UndoManager();

	public UndoAndRedoOperations() {
		p = new JPanel();
		area = new JTextArea(5, 30);
		pane = new JScrollPane(area);
		manager = new UndoManager();
		b1 = new JButton("Undo");
		b2 = new JButton("Redo");
		b3 = new JButton("Exit");
		b1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					manager.undo();
				} catch (Exception ex) {
				}
			}
		});
		b2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					manager.redo();
				} catch (Exception ex) {
				}
			}
		});
		b3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		area.getDocument().addUndoableEditListener(new UndoableEditListener() {
			public void undoableEditHappened(UndoableEditEvent e) {
				manager.addEdit(e.getEdit());
			}
		});
		p.add(pane);
		p.add(b1);
		p.add(b2);
		p.add(b3);
		add(p);
		setVisible(true);
		pack();
	}

	public static void main(String[] args) {
		UndoAndRedoOperations op = new UndoAndRedoOperations();
	}
}

Output:

Advertisement

Related Tags for Java Swing Undo Redo Operations:


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: May 6, 2010

Recommend the tutorial

Advertisements Advertisements
 

 

 

DMCA.com