笔记本的撤销功能的动作类。 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到底是干什么用的?
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到底是干什么用的?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货