モジュール java.desktop
パッケージ javax.swing.undo

インタフェースUndoableEdit

既知のすべての実装クラス:
AbstractDocument.DefaultDocumentEvent, AbstractDocument.ElementEdit, AbstractUndoableEdit, CompoundEdit, DefaultStyledDocument.AttributeUndoableEdit, StateEdit, UndoManager

public interface UndoableEdit
UndoableEditは編集結果を表します。 編集結果の取り消しや、いったん取り消した編集の再実行も可能です。

UndoableEditUndoManagerとともに使用します。 UndoableEditUndoableEditListenerによって生成されるので、通常はUndoManagerに追加されます。 UndoableEditUndoManagerに追加されると、次の処理が行われます(UndoManager上でまだendが呼び出されていないものと想定)。

  1. すでに編集結果を格納しているUndoManagerは、現在の編集結果に対してaddEditを呼び出します。このとき、新しい編集結果を引数に指定します。 addEditがtrueを返す場合は、新しい編集結果がすでに現在の編集結果に組み込まれたものとみなされます。したがって、この新しい編集結果は、現在の編集結果のリストには追加されません。 addEditを使って小規模な編集結果をより大規模な編集結果に組み込むことにより、1つの編集結果として扱うことができます。
  2. addEditの戻り値がfalseである場合、新しい編集結果に対してreplaceEditが呼び出されます。このとき、引数として現在の編集結果が渡されます。 これは、addEditと逆の操作になります。新しい編集結果がreplaceEditからtrueを返す場合、この編集結果で現在の編集結果が置き換えられます。
UndoManagerは、isSignificantを利用して、何個の編集結果を取り消せるか、または取り消した編集を再実行できるかを決定します。 UndoManagerは、小さな編集結果を取り消したり、再実行したりできます(isSignificantがfalseを返す場合)。たとえば、現在の編集結果を取り消して前回の重大な結果に戻したり、編集を再実行して重大な編集結果を得ることができます。複数の編集結果を単一の編集結果として扱うには、addEditreplaceEditを使用します。isSignificantがfalseを返す場合は、多くの小さな編集結果を一度に取り消したり、再実行したりできます。 同様の処理は、addEditメソッドを使っても実行できます。