Как реализовать отменить варианта стиля manipul

Этот совет Java Swing иллюстрирует метод реализации отменить варианта стиля манипуляций. Например добавить отменить поддержку StyleFrame пример описан в оконечности под названием "". Этот совет только сохраняет за собой последнее прав, для простоты.


import javax.swing.*;

import javax.swing.undo.*;

import javax.swing.event.*;

import java.awt.event.*;



public class UndoStyleFrame extends StyleFrame {



  protected UndoAct undoAction = new UndoAct()// an Action for undo

  protected RedoAct redoAction = new RedoAct()// an Action for redo



  public UndoStyleFrame() {

    super();

    setTitle("UndoStyleFrame");



    // register the Actions as undo listeners (we inherited textPane)

    textPane.getDocument().addUndoableEditListener(undoAction);

    textPane.getDocument().addUndoableEditListener(redoAction);



    // create menu for undo/redo

    JMenu editMenu = new JMenu("Edit");

    editMenu.add(new JMenuItem(undoAction));

    editMenu.add(new JMenuItem(redoAction));

    menuBar.add(editMenu)// we inherited menuBar from superclass



    // create buttons for undo/redo

    JPanel buttonPanel = new JPanel();

    buttonPanel.add(new JButton(undoAction));

    buttonPanel.add(new JButton(redoAction));

    getContentPane().add(buttonPanel, java.awt.BorderLayout.SOUTH);

  }



  // begin inner classes ------------

  

  public class UndoAct extends AbstractAction implements UndoableEditListener {

    private UndoableEdit edit;



    public UndoAct() {

      super("Undo");

      setEnabled(false);

    }

    public void updateEnabled() {

      setEnabled(edit.canUndo());

    }

    public void undoableEditHappened(UndoableEditEvent event) {

      edit = event.getEdit();

      putValue(NAME, edit.getUndoPresentationName());

      updateEnabled();

    }

    public void actionPerformed(ActionEvent ae) {

      edit.undo();

      updateEnabled()// disable undo

      redoAction.updateEnabled()// enable redo

    }

  }

  

  public class RedoAct extends AbstractAction implements UndoableEditListener {

    private UndoableEdit edit;



    public RedoAct() {

      super("Redo");

      setEnabled(false);

    }

    public void updateEnabled() {

      setEnabled(edit.canRedo());

    }

    public void undoableEditHappened(UndoableEditEvent event) {

      edit = event.getEdit();

      putValue(NAME, edit.getRedoPresentationName());

      updateEnabled();

    }

    public void actionPerformed(ActionEvent ae) {

      edit.redo();

      updateEnabled()// disable redo

      undoAction.updateEnabled()// enable undo

    }

  }

  

  // end inner classes ------------



  public static void main(String[] args) {

    JFrame frame = new UndoStyleFrame();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setSize(400300);

    frame.setVisible(true);

  }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>