Скройте определенные действия от менеджера по отмене Swing

Мне удалось выяснить это, на самом деле ничего общего с прыжками с 0-100%, одно из значений массива, которые я читаю из массива разбиения, всегда пусто в наборе данных, и элемент управления никогда не попадает внутрь условие if для установки контекста. Как только я исправил, это начало работать. Спасибо за ваше время.

5
задан Itay Maman 6 January 2009 в 17:42
поделиться

3 ответа

Вы могли прервать редактирования ИЗМЕНЕНИЯ и перенести каждого в другой UndoableEdit чей isSignificant() возвраты метода false, прежде, чем добавить его к UndoManager. Затем каждая команда Undo отменит новую ВСТАВКУ или УДАЛИТ редактирование плюс каждое редактирование ИЗМЕНЕНИЯ, которое произошло с тех пор.

В конечном счете я думаю, что Вы найдете, что механизм моделирования, обеспеченный JTextPane/StyledDocument/etc., слишком ограничен для такого рода вещи. Это медленно, это использует слишком много памяти, и это основано на том же дереве Элемента, которое это используется для отслеживания лексическую структуру документа. Это хорошо (я предполагаю) для приложений, в которых стили применяются пользователем, как текстовые процессоры, но не для маркера синтаксиса, который должен постоянно обновлять стили как пользовательские типы.

Существует несколько примеров там редакторов подсветки синтаксиса на основе пользовательских реализаций Swing JTextComponent, View и Document классы. Некоторые, как JEdit, повторно реализуют практически целое javax.swing.text пакет, но я не думаю, что необходимо пойти настолько далеко.

1
ответ дан 15 December 2019 в 06:37
поделиться

Как Вы пытаетесь препятствовать тому, чтобы события CHANGE достигли менеджера по отмене?

Разве Вы не можете отправить UndoManager lastEdit () .die () вызов сразу после того, как ИЗМЕНЕНИЕ будет поставлено в очередь?

1
ответ дан 15 December 2019 в 06:37
поделиться

Я могу только принять, как Вы делаете текстовую окраску. При выполнении его в методе атрибута символов изменения StyledDocuments, можно получить слушателя отмены и временно вычеркнуть из списка его из документа для той операции и затем после того как цветное изменение имеет finshed затем, можно повторно зарегистрировать слушателя.

Должен быть хорошо для того, что Вы пытаетесь сделать там.

надежда, которая помогает

1
ответ дан 15 December 2019 в 06:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: