Spec-Zone .ru
спецификации, руководства, описания, API
|
public class UndoManager extends CompoundEdit implements UndoableEditListener
UndoManager
управляет списком UndoableEdits
, обеспечение способа отменить или восстановить соответствующие редактирования. Есть два способа добавить редактирования к UndoManager
. Добавьте редактирование, непосредственно используя addEdit
метод, или добавляют UndoManager
к бобу, который поддерживает UndoableEditListener
. Следующие примеры создают UndoManager
и добавляет это как UndoableEditListener
к a JTextField
: UndoManager undoManager = new UndoManager(); JTextField tf = ...; tf.getDocument().addUndoableEditListener(undoManager);
UndoManager
поддерживает упорядоченный список редактирований и индекс следующего редактирования в том списке. Индекс следующего редактирования является или размером текущего списка редактирований, или если undo
был вызван это соответствует индексу последнего существенного редактирования, которое было отменено. Когда undo
вызывается все редактирования от индекса следующего редактирования к последнему существенному редактированию отменяются в обратном порядке. Например, рассмотрите UndoManager
состоя из следующих редактирований: b c Д. Эдитс с прописной буквой полужирным является существенным, те в нижнем регистре и выделенный курсивом являются незначащими.
Рисунок 1 |
Как показано в рисунке 1, если D был только добавлен, индекс следующего редактирования будет 4. Вызов undo
результаты в вызове undo
на D и установке индекса следующего редактирования к 3 (редактируют c), как показано в следующем числе.
Рисунок 2 |
Последнее существенное редактирование является A, так, чтобы вызов undo
снова вызывает undo
на c, b, и A, в том порядке, устанавливая индекс следующего редактирования к 0, как показано в следующем числе.
Рисунок 3 |
Вызов redo
результаты в вызове redo
на всех редактированиях между индексом следующего редактирования и следующем существенном редактировании (или конец списка). Продолжение с предыдущим примером, если redo
были вызваны, redo
был бы поочередно вызван на A, b и c. Кроме того, индекс следующего редактирования устанавливается в 3 (как показано в рисунке 2).
Добавление редактирования к UndoManager
результаты в удалении всех редактирований от индекса следующего редактирования до конца списка. Продолжаясь с предыдущим примером, если новое редактирование, e, добавляется, редактирование D удаляется из списка (после того, как наличие die
вызванный на это). Если c не включается следующим редактированием (c.addEdit(e)
возвращает true), или замененный этим (e.replaceEdit(c)
возвращает true), новое редактирование добавляется после c, как показано в следующем числе.
Рисунок 4 |
Однажды end
был вызван на UndoManager
поведение суперкласса используется для всех UndoableEdit
методы. Обратитесь к CompoundEdit
для большего количества деталей о его поведении.
В отличие от остальной части Swing, этот класс ориентирован на многопотоковое исполнение.
Предупреждение: Сериализированные объекты этого класса не будут совместимыми с будущими выпусками Swing. Текущая поддержка сериализации является подходящей для краткосрочного хранения или RMI между приложениями, выполняющими ту же самую версию Swing. С 1.4, поддержка длительного хранения всего JavaBeansTM была добавлена к java.beans
пакет. Пожалуйста, см. XMLEncoder
.
редактирования
RedoName, UndoName
Конструктор и Описание |
---|
UndoManager()
Создает новое
UndoManager . |
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
addEdit(UndoableEdit anEdit)
Добавляет
UndoableEdit к этому UndoManager , если это возможно. |
boolean |
canRedo()
Возвращает true, если редактирования могут быть сделаны заново.
|
boolean |
canUndo()
Возвращает true, если редактирования могут быть отменены.
|
boolean |
canUndoOrRedo()
Возвращает true, если возможно вызвать
undo или redo . |
void |
discardAllEdits()
Освобождает менеджера по отмене, отправляющего каждое редактирование a
die сообщение в процессе. |
protected UndoableEdit |
editToBeRedone()
Возвращает следующее существенное редактирование, которое будет сделано заново если
redo вызывается. |
protected UndoableEdit |
editToBeUndone()
Возвращает следующее существенное редактирование, которое будет отменено если
undo вызывается. |
void |
end()
Повороты это
UndoManager в нормальное CompoundEdit . |
int |
getLimit()
Возвращает максимальное количество редактирований это
UndoManager содержит. |
Строка |
getRedoPresentationName()
Возвращает описание перевыполнимой формы этого редактирования.
|
Строка |
getUndoOrRedoPresentationName()
Метод удобства, который возвращается также
getUndoPresentationName или getRedoPresentationName . |
Строка |
getUndoPresentationName()
Возвращает описание невыполнимой формы этого редактирования.
|
void |
redo()
Делает заново соответствующие редактирования.
|
protected void |
redoTo(UndoableEdit edit)
Делает заново все изменения от индекса следующего редактирования к
edit , обновление индекса следующего редактирования соответственно. |
void |
setLimit(int l)
Устанавливает максимальное количество редактирований это
UndoManager содержит. |
Строка |
toString()
Возвращает строку, которая выводит на экран и идентифицирует свойства этого объекта.
|
protected void |
trimEdits(int from, int to)
Удаляет редактирования в указанном диапазоне.
|
protected void |
trimForLimit()
Сокращает количество редактирований с очередями к диапазону предела размера, центрируемого на индексе следующего редактирования.
|
void |
undo()
Отменяет соответствующие редактирования.
|
void |
undoableEditHappened(UndoableEditEvent e)
UndoableEditListener метод. |
void |
undoOrRedo()
Метод удобства, который вызывает один из
undo или redo . |
protected void |
undoTo(UndoableEdit edit)
Отмены все изменения от индекса следующего редактирования к
edit , обновление индекса следующего редактирования соответственно. |
die, getPresentationName, isInProgress, isSignificant, lastEdit
replaceEdit
public int getLimit()
UndoManager
содержит. Значение меньше чем 0 указывают на число редактирований, не ограничивается.UndoManager
содержитaddEdit(javax.swing.undo.UndoableEdit)
, setLimit(int)
public void discardAllEdits()
die
сообщение в процессе.AbstractUndoableEdit.die()
protected void trimForLimit()
protected void trimEdits(int from, int to)
die
вызванный на них и удаляются из списка редактирований. Это не имеет никакого эффекта если from
> to
.from
- минимальный индекс, чтобы удалитьto
- максимальный индекс, чтобы удалитьpublic void setLimit(int l)
UndoManager
содержит. Значение меньше чем 0 указывают на число редактирований, не ограничивается. Если редактирования должны быть отброшены, чтобы уменьшить предел, die
будет вызван на них в обратном порядке, они были добавлены. Значение по умолчанию 100.l
- новый пределRuntimeException
- если это UndoManager
не происходит (end
был вызван),CompoundEdit.isInProgress()
, end()
, addEdit(javax.swing.undo.UndoableEdit)
, getLimit()
protected UndoableEdit editToBeUndone()
undo
вызывается. Это возвращается null
если нет никаких редактирований, которые будут отменены.protected UndoableEdit editToBeRedone()
redo
вызывается. Это возвращается null
если нет никаких редактирований, которые будут сделаны заново.protected void undoTo(UndoableEdit edit) throws CannotUndoException
edit
, обновление индекса следующего редактирования соответственно.CannotUndoException
- если один из бросков редактирований CannotUndoException
protected void redoTo(UndoableEdit edit) throws CannotRedoException
edit
, обновление индекса следующего редактирования соответственно.CannotRedoException
- если один из бросков редактирований CannotRedoException
public void undoOrRedo() throws CannotRedoException, CannotUndoException
undo
или redo
. Если какие-либо редактирования были отменены (индекс следующего редактирования является меньше чем длина списка редактирований), это вызывает redo
, иначе это вызывает undo
.CannotUndoException
- если один из бросков редактирований CannotUndoException
CannotRedoException
- если один из бросков редактирований CannotRedoException
canUndoOrRedo()
, getUndoOrRedoPresentationName()
public boolean canUndoOrRedo()
undo
или redo
.canUndoOrRedo
допустимоundoOrRedo()
public void undo() throws CannotUndoException
end
был вызван это вызывает через к суперклассу, иначе это вызывает undo
на всех редактированиях между индексом следующего редактирования и последнем существенном редактировании, обновляя индекс следующего редактирования соответственно.undo
в интерфейсе UndoableEdit
undo
в классе CompoundEdit
CannotUndoException
- если один из бросков редактирований CannotUndoException
или нет никаких редактирований, которые будут отмененыCompoundEdit.end()
, canUndo()
, editToBeUndone()
public boolean canUndo()
end
был вызван, это возвращает значение из супер. Иначе это возвращает true, если есть какие-либо редактирования, которые будут отменены (editToBeUndone
возвраты не -null
).canUndo
в интерфейсе UndoableEdit
canUndo
в классе CompoundEdit
CompoundEdit.canUndo()
, editToBeUndone()
public void redo() throws CannotRedoException
end
был вызван это вызывает через к суперклассу. Иначе это вызывает redo
на всех редактированиях между индексом следующего редактирования и следующем существенном редактировании, обновляя индекс следующего редактирования соответственно.redo
в интерфейсе UndoableEdit
redo
в классе CompoundEdit
CannotRedoException
- если один из бросков редактирований CannotRedoException
или нет никаких редактирований, которые будут сделаны зановоCompoundEdit.end()
, canRedo()
, editToBeRedone()
public boolean canRedo()
end
был вызван, это возвращает значение из супер. Иначе, это возвращает true, если есть какие-либо редактирования, которые будут сделаны заново (editToBeRedone
возвраты не -null
).canRedo
в интерфейсе UndoableEdit
canRedo
в классе CompoundEdit
CompoundEdit.canRedo()
, editToBeRedone()
public boolean addEdit(UndoableEdit anEdit)
UndoableEdit
к этому UndoManager
, если это возможно. Это удаляет все редактирования из индекса следующего редактирования до конца списка редактирований. Если end
был вызван редактирование не добавляется и false
возвращается. Если end
не был вызван это возвращается true
.addEdit
в интерфейсе UndoableEdit
addEdit
в классе CompoundEdit
anEdit
- редактирование, которое будет добавленоanEdit
может быть включен в это редактированиеCompoundEdit.end()
, CompoundEdit.addEdit(javax.swing.undo.UndoableEdit)
public void end()
UndoManager
в нормальное CompoundEdit
. Это удаляет все редактирования, которые были отменены.end
в классе CompoundEdit
CompoundEdit.end()
public String getUndoOrRedoPresentationName()
getUndoPresentationName
или getRedoPresentationName
. Если индекс следующего редактирования равняется размеру списка редактирований, getUndoPresentationName
возвращается, иначе getRedoPresentationName
возвращается.public String getUndoPresentationName()
end
был вызван это вызывает в супер. Иначе, если есть редактирования, которые будут отменены, это возвращает значение из следующего существенного редактирования, которое будет отменено. Если нет никаких редактирований, которые будут отменены и end
не был вызван это возвращает значение из UIManager
свойство "AbstractUndoableEdit.undoText".getUndoPresentationName
в интерфейсе UndoableEdit
getUndoPresentationName
в классе CompoundEdit
undo()
, CompoundEdit.getUndoPresentationName()
public String getRedoPresentationName()
end
был вызван это вызывает в супер. Иначе, если есть редактирования, которые будут сделаны заново, это возвращает значение из следующего существенного редактирования, которое будет сделано заново. Если нет никаких редактирований, которые будут сделаны заново и end
не был вызван это возвращает значение из UIManager
свойство "AbstractUndoableEdit.redoText".getRedoPresentationName
в интерфейсе UndoableEdit
getRedoPresentationName
в классе CompoundEdit
redo()
, CompoundEdit.getRedoPresentationName()
public void undoableEditHappened(UndoableEditEvent e)
UndoableEditListener
метод. Это вызывает addEdit
с e.getEdit()
.undoableEditHappened
в интерфейсе UndoableEditListener
e
- UndoableEditEvent
UndoableEditEvent
будет добавлен отaddEdit(javax.swing.undo.UndoableEdit)
public String toString()
toString
в классе CompoundEdit
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.