Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.BorderLayout;
- import java.awt.GridLayout;
- 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.event.UndoableEditListener;
- import javax.swing.undo.UndoManager;
- public class UndoWindow extends JFrame {
- private JTextArea textArea = new JTextArea();
- private UndoManager undoManager = new UndoManager();
- private JButton undo = new JButton("<");
- private JButton redo = new JButton(">");
- public UndoWindow() {
- super("Window Undo");
- JPanel button = new JPanel(new GridLayout());
- button.add(undo);
- button.add(redo);
- getContentPane().add(button, BorderLayout.SOUTH);
- getContentPane().add(new JScrollPane(textArea), BorderLayout.CENTER);
- textArea.getDocument().addUndoableEditListener(
- new UndoableEditListener() {
- public void undoableEditHappened(UndoableEditEvent e) {
- undoManager.addEdit(e.getEdit());
- update();
- }
- });
- undo.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- undoManager.undo();
- update();
- }
- });
- redo.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- undoManager.redo();
- update();
- }
- });
- setSize(450, 550);
- setVisible(true);
- }
- public void update() {
- undo.setText(undoManager.getUndoPresentationName());
- redo.setText(undoManager.getRedoPresentationName());
- undo.setEnabled(undoManager.canUndo());
- redo.setEnabled(undoManager.canRedo());
- }
- public static void main(String argv[]) {
- new UndoWindow();
- }
- }
Add Comment
Please, Sign In to add comment