`
semi_sleep
  • 浏览: 101129 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对javax.swing.undo包的总结

    博客分类:
  • Java
阅读更多

/* UndoableEdit and AbstractUndoableEdit */

AbstractUndoableEdit edit = new AbstractUndoableEdit();

 

// methods fall into 3 categories

 

// 1.undoable operations

// if the alive field is false, all operation fail

// the hasBeenDone field affect the behaviours of canUndo and canRedo method

if (edit.canUndo()) {

       edit.undo(); // the behaviour depends on canUndo

}

 

if (edit.canRedo()) {

       edit.redo(); // the behaviour depends on canRedo

}

 

edit.die(); // set alive to be false

 

// 2.edit management

edit.isSignificant(); // if the edit affect model state, default implementation return false

edit.addEdit(null); // edit queued in some UndoableEditListener, and try to absorb another edit

edit.replaceEdit(null); // try to replace another edit queued in some UndoableEditListener

 

// 3.representation

edit.getPresentationName();

 

// the following 2 methods use result of getPresentationName and add undo/redo text in UIManager

edit.getUndoPresentationName();

edit.getRedoPresentationName();

 

/* CompoundEdit */

// implements the composition pattern, manages a set of edits

CompoundEdit compound = new CompoundEdit();

 

// undoable operations (except die) fail if inProgress is true

// edit management methods (except isSignificant) fail if inProgress is false

compound.isInProgress();

compound.end(); // set inProgress to be false

 

// representation methods try to use information of the last edit

 

/* UndoManager */

UndoManager manager = new UndoManager();

 

// extends undoable operations when inProgress is true

// undo/redo now stop at the latest significant edit

// limit the maximal number of edits

manager.setLimit(0);

manager.getLimit();

manager.discardAllEdits(); // clear all edits

 

// extends representation methods when inProgress is true

// undo/redo methods try to use information of the latest edit to be undo/redo

 

// add undoOrRedo methods

if (manager.canUndoOrRedo()) {

       manager.undoOrRedo();

}

 

manager.getUndoOrRedoPresentationName();

 

/* StateEditable */

// stateful object should be able to store and restore its state

StateEditable stateEditable = new StateEditable() {

       public void restoreState(Hashtable<?, ?> state) {}

       public void storeState(Hashtable<Object, Object> state) {}

};

 

/* StateEdit */

// extends AbstractUndoableEdit to add the ability to use StateEditable

// store pre-state

StateEdit stateEdit = new StateEdit(stateEditable);

 

// store post-state

stateEdit.end();

 

// restore the state of stateEditable

stateEdit.undo();

stateEdit.redo();

 

/* UndoableEditSupport */

UndoableEditSupport support = new UndoableEditSupport(new Object());

 

// methods fall into 2 categories

// 1.manage a set of UndoableEditListener

support.addUndoableEditListener(null);

support.removeUndoableEditListener(null);

support.getUndoableEditListeners();

 

// 2.send UndoableEditEvent

// if updateLevel is 0, all UndoableEditEvent would be sent immediately

// else UndoableEdit will be saved in CompoundUndoableEdit and wait util updateLevel change to 0

support.beginUpdate(); // increase updateLevel

// send UndoableEditEvent if updateLevel is 0 or save edit in CompoundUndoableEdit

support.postEdit(null);

support.endUpdate(); // decrease unpdateLeve and send UndoableEditEvent if necessary

分享到:
评论

相关推荐

    java SE API

    javax.swing.undo javax.transaction javax.transaction.xa javax.xml javax.xml.datatype javax.xml.namespace javax.xml.parsers javax.xml.transform javax.xml.transform.dom javax.xml.transform.sax ...

    [Java参考文档].JDK_API 1.6

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

    Javase-6.0_中文API_HTML(最新更新)

    javax.swing.undo javax.tools javax.transaction javax.transaction.xa javax.xml javax.xml.bind javax.xml.bind.annotation javax.xml.bind.annotation.adapters javax.xml.bind.attachment javax.xml....

    jdk 中文版

    javax.swing.undo javax.tools javax.transaction javax.transaction.xa javax.xml javax.xml.bind javax.xml.bind.annotation javax.xml.bind.annotation.adapters javax.xml.bind.attachment javax.xml....

    JAVA_API1.6文档(中文)

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

    精通java-swing开发.doc

    - `javax.swing.undo`:提供了撤销/重做功能的支持,常用于文本编辑组件。 Swing的版面结构是构建GUI布局的关键。它允许开发者通过布局管理器(Layout Manager)来控制组件的位置和大小。例如,`JFrame`、`JDialog`...

    Java中Swing的相关知识(1)

    ### Java中Swing的相关知识详解 ...- `javax.swing.undo`: 支持撤销操作。 以上介绍涵盖了Swing的基本概念、特点以及类层次结构。通过理解这些基础知识,开发者可以更好地利用Swing来构建高质量的图形用户界面。

    Java中Swing.pdf

    10. `javax.swing.undo`:提供了撤销/重做功能的实现,使得用户操作可以被追踪和撤销。 值得注意的是,Swing组件与AWT组件在命名上有所区分,Swing组件的名称通常以大写字母J开头,例如`JFrame`、`JPanel`等,以此...

    计算机软件及应用jaaPPT课件.pptx

    - `javax.swing.undo`: 实现文字组件的撤销/重做功能。 9.1.3 常用组件的继承关系 Swing组件的继承层次结构始于`java.lang.Object`,然后是`java.awt.Component`,接着是`java.awt.Container`,再是`javax.swing....

    The Java Developers Almanac

    javax.swing.tree [15 examples] javax.swing.undo [1 examples] javax.xml.parsers [8 examples] javax.xml.transform [5 examples] javax.xml.transform.sax [1 examples] org.w3c.dom ...

    Swing读书笔记

    16. **`javax.swing.undo`**: - 提供了文本组件的撤销(Undo)和重做(Redo)功能,增强了用户交互体验。 #### Swing的版面结构分析 Swing中的组件主要分为两类:轻量级组件(lightweight component)和重量级组件...

    JavaSE-6.0-英文手册(2008/11/30_FullUpdate)

    javax.swing.undo javax.tools javax.transaction javax.transaction.xa javax.xml javax.xml.bind javax.xml.bind.annotation javax.xml.bind.annotation.adapters javax.xml.bind.attachment javax.xml....

    java api最新7.0

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

    JavaAPI1.6中文chm文档 part1

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

    [Java参考文档]

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

    计算机软件及应用jaaPPT学习教案.pptx

    此外,`javax.swing.event`包处理组件产生的事件,`javax.swing.undo`提供了文字组件的撤销/重做功能。 Swing组件之间存在着清晰的继承关系,所有组件都从`java.lang.Object`派生,然后是`java.awt.Component`,...

    Java 1.6 API 中文 New

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

    JDK_1_6 API

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

    JavaAPI中文chm文档 part2

    javax.swing.undo 允许开发人员为应用程序(例如文本编辑器)中的撤消/恢复提供支持。 javax.transaction 包含解组期间通过 ORB 机制抛出的三个异常。 javax.transaction.xa 提供定义事务管理器和资源管理器之间的...

Global site tag (gtag.js) - Google Analytics