记事本里的撤销功能怎么做啊  用javaSE

解决方案 »

  1.   

    1.写个java类
    2.代码如下:
    // ---------------创建撤消操作管理器
    protected UndoManager undo = new UndoManager();
    protected UndoableEditListener undoHandler = new UndoHandler();
    // 撤消
    else if (e.getSource() == mEdit_Undo || e.getSource() == popupMenu_Undo || e.getSource() == undoButton) {
    Text.requestFocus();
    if (undo.canUndo()) {
    try {
    undo.undo();} catch (CannotUndoException ex) {
    System.out.println("Unable to undo: " + ex);
    ex.printStackTrace();
    }if (!undo.canUndo()) {
    mEdit_Undo.setEnabled(false);
    popupMenu_Undo.setEnabled(false);
    undoButton.setEnabled(false);}
    }
    }
    3.test测试
      

  2.   

    要么把前一版本(文本被编辑修改前)的内容全部记下来,Undo的时候将前面保存的内容载入。
    要么把每个文本修订动作、位置、增量内容记录下来,Undo的时候反向操作。
      

  3.   

    撤销的是对Document的操作。Document的几个实现内置了对Swing Undo/Redo 机制的支持。
    addUndoableEditListener(UndoableEditListener listener)
    Registers the given observer to begin receiving notifications when undoable edits are made to the document.
      

  4.   

    可以用command设计模式呢,,用一个Stack保存编辑的命令,当有撤销的时候pop()就可以了。可以见一下java Command设计模式,估计会有帮助。
      

  5.   

    就像4楼说的,测销的尺度确实是要首先确定的
    如果你可以接受一个字一个字的测销,
    那Swing自带的UndoManager就很适合你否则,你要自己写个UndoManager了