网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  在你的jtextcomponent组件中加入undo、redo功能     
  文章作者:未知  文章来源:水木森林  
  查看:120次  录入:管理员--2007-11-17  
 
  费话就不说了,且看看我是如何实现的。

package lookbook.swing;
import javax.swing.undo.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.event.*;
import java.awt.event.actionevent;
import java.awt.*;
/**
* <p>title: </p>
* <p>description: </p>
* <p>copyright: copyright (c) 2003</p>
* <p>company: </p>
* @author lookbook
* @version 1.0
*/

public class undoframe extends jframe{
jpanel jpanel1 = new jpanel();
borderlayout borderlayout1 = new borderlayout();
jscrollpane jscrollpane1 = new jscrollpane();
jtextarea undotextarea = new jtextarea();
public undoframe() {
try {
jbinit();
}
catch(exception e) {
e.printstacktrace();
}
}
private void jbinit() throws exception {
jpanel1.setlayout(borderlayout1);
undotextarea.settext("");
this.setundo(undotextarea);
this.getcontentpane().add(jpanel1, borderlayout.center);
jpanel1.add(jscrollpane1, borderlayout.center);
jscrollpane1.getviewport().add(undotextarea, null);
}
//设置undo、redo功能的函数
private void setundo(jtextcomponent textcomponent){
final undomanager undo = new undomanager();
document doc = textcomponent.getdocument();

doc.addundoableeditlistener(new undoableeditlistener() {
public void undoableedithappened(undoableeditevent evt) {
undo.addedit(evt.getedit());
}
});

textcomponent.getactionmap().put("undo",
new abstractaction("undo") {
public void actionperformed(actionevent evt) {
try {
if (undo.canundo()) {
undo.undo();
}
} catch (cannotundoexception e) {
}
}
});
textcomponent.getinputmap().put(keystroke.getkeystroke("control z"), "undo");

textcomponent.getactionmap().put("redo",
new abstractaction("redo") {
public void actionperformed(actionevent evt) {
try {
if (undo.canredo()) {
undo.redo();
}
} catch (cannotredoexception e) {
}
}
});
textcomponent.getinputmap().put(keystroke.getkeystroke("control y"), "redo");

}
public static void main(string[] args) {
undoframe undo = new undoframe();
undo.setsize(200,200);
undo.show();
}
}
 
 
上一篇: 在浏览器关闭cookie情况下进行会话管理    下一篇: 在清单里设置主类
  相关文档
关于map和list的性能测试报告 11-17
对j2ee项目的一些体会 11-16
画正弦曲线 11-16
一种纯java的数据库—jdatastore 11-17
java中的数组研究 11-17
j2se综合:两种java容器类list和set分析 01-15
java的网络功能与编程(1) 11-16
开源面向对象数据库:db4o 查询方式 11-17
tomcat向weblogic移植的中文乱码问题 11-17
java违例准则 11-17
限制文本字节数的js源代码程序 11-17
java se 6 新特性: http 增强 11-17
交易,提交以及安全性 11-17
软件的架构设计 11-17
比尔学java:javasocket篇 11-17
使用java程序实现随机验证码功能的实例 11-16
test of the java skill(2) 11-16
hibernate实践 11-17
java中鲜为人知的缺点(下) 11-17
java源代码分析----jvm.dll装载过程 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息