笔记本的撤销功能的动作类。    class UndoAction extends AbstractAction {
public UndoAction() {
    super("Undo");
    setEnabled(false);
} public void actionPerformed(ActionEvent e) {
    try {
undo.undo();  //undo为UndoManager的实例对象,撤销操作的核心算法实现。
    } catch (CannotUndoException ex) {
System.out.println("Unable to undo: " + ex);
ex.printStackTrace();
    }
    update();
} protected void update() {
    if(undo.canUndo()) {
setEnabled(true);
putValue(Action.NAME, undo.getUndoPresentationName());
    }
    else {
setEnabled(false);
putValue(Action.NAME, "Undo");
    }
}
    }这个action类是当想使用撤销功能的时候,就调用actionPerformed。我不明白的是update中使用putValue(Action.NAME, undo.getUndoPresentationName())或putValue(Action.NAME, "Undo")这2个方法是为什么?有什么作用?undo.getUndoPresentationName()返回的是一个字符串,而且每次都是同一个值。这个putValue到底是干什么用的?