Как добавить отмены и повтора в тексте Comp

Этот совет Java иллюстрирует метод добавления отмены и восстановления в текстовый компонент. Качели Toolkit содержит отменить менеджера, который можно добавить на объект документа для представления отмены и повтора capabilty. Этот пример добавляет отменить возможности JTextArea компонента. Пример обязывает отменить меры по Control-Z и повторить действия по контрольно-Y.


    JTextComponent textcomp = new JTextArea();

    final UndoManager undo = new UndoManager();

    Document doc = textcomp.getDocument();

    

    // Listen for undo and redo events

    doc.addUndoableEditListener(new UndoableEditListener() {

        public void undoableEditHappened(UndoableEditEvent evt) {

            undo.addEdit(evt.getEdit());

        }

    });

    

    // Create an undo action and add it to the text component

    textcomp.getActionMap().put("Undo",

        new AbstractAction("Undo") {

            public void actionPerformed(ActionEvent evt) {

                try {

                    if (undo.canUndo()) {

                        undo.undo();

                    }

                catch (CannotUndoException e) {

                }

            }

       });

    

    // Bind the undo action to ctl-Z

    textcomp.getInputMap().put(KeyStroke.getKeyStroke("control Z")"Undo");

    

    // Create a redo action and add it to the text component

    textcomp.getActionMap().put("Redo",

        new AbstractAction("Redo") {

            public void actionPerformed(ActionEvent evt) {

                try {

                    if (undo.canRedo()) {

                        undo.redo();

                    }

                catch (CannotRedoException e) {

                }

            }

        });

    

    // Bind the redo action to ctl-Y

    textcomp.getInputMap().put(KeyStroke.getKeyStroke("control Y")"Redo");

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

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

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