Java应用技巧——文本撤销、恢复功能的实现
作文本编辑器的时候,撤销(undo)、恢复(redo)是必不可少的两个功能。实现这个功能,要用到javax.swing.undo包中的UndoManager类。
UndoManager类有如下常用方法:
boolean canUndo() ——判断能否进行撤消操作,可以则返回true。
boolean canRedo() ——判断能否进行恢复操作,可以则返回true。
void Undo() ——进行撤消操作。
void Redo() ——进行恢复操作。
但是,进行撤销、恢复操作前还应为撤销、恢复的对象注册侦听器。在文本编辑器中,对象就是文本。例如先声明两个对象:
JTextArea text = new JTextArea();
UndoManager undomg = new UndoManager();
接下来,为text添加侦听器:
text.getDocument().addUndoableEditListener(undomg);
这里要说名一下,之所以要写getDocument()是因为注册侦听器的对象是文本,不是文本框。addUndoableEditListener(undomg)的作用是为text的文本注册侦听器,该方法的原型是:
void addUndoableEditListener(UndoableEditListener listener)
可以看出,该方法的参数应是一个UndoableEditListener接口类型的参数,而我们用的参数是UndoManager类型,这是因为UndoManager类已经实现了UndoableEditListener接口的缘故。
现在就可以进行撤销、恢复操作了。方法是:
undomg.Undo(); //撤销
undomg.Redo(); //恢复
但是这样不算完美,因为如果无法撤销或恢复,这两个语句就不会起任何作用。因此我们改用如下方法:
if(undomg.canUndo()) { //撤销
undomg.Undo();
}
if(undomg.canRedo()) { //恢复
undomg.Redo();
}
这样一来,文本编辑器的撤销、恢复功能很容易地就实现了。以下是一个例子:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.undo.*;
class UndoDemo extends JFrame {
static JTextArea text = new JTextArea();
static JPanel pnl = new JPanel();
static JButton unbtn = new JButton("撤销");
static JButton rebtn = new JButton("恢复");
static UndoManager undomg = new UndoManager();
UndoDemo() {
super("撤销、恢复功能实例");
setVisible(true);
setSize(400,300);
s
相关文档:
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
declarations n. 声明
extends v. 继承
继承中注意的问题:
1 重写(也叫覆盖,也叫重构):重写方法必须和被重写方法具有相同的方法名称、参数列表和返回值类型;
重写方法不能使用比被重写方法更严格的访问权限。
重写是类与类 ......
==操作符与equals方法的区别:
==是引用类型比较引用(也就是比较内容和地址);基本类型比较值;
equals()方法只能比较引用类型,"=="可以比较引用类型及基本类型;
特例:当用equals()方法进行比较时,对类File、String、Date及封装类(Wrapper包装 ......
http://java.csdn.net/index.php/2009/09/01/java%E5%BC%80%E5%8F%91%E8%80%85%E6%9C%80%E5%B8%B8%E5%8E%BB%E7%9A%8420%E4%B8%AA%E8%8B%B1%E6%96%87%E7%BD%91%E7%AB%99/
JAVA开发者最常去的20个英文网站
1.[http://www.javaalmanac.com
] – Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代 ......
java经典书籍汇总(部分)
一、入门
《Java 2从入门到精通》- 推荐
《Thinking in Java》- 强烈推荐*
O’reilly的Java编程基础系列 - 参考*
二、进阶
《Java Cook Book》- 非常推荐* (包含了Java编程的Tips,适合当 ......