大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 用JAVA实现Undo、Redo,Copy、Paste、Cut

用JAVA实现Undo、Redo,Copy、Paste、Cut

时间: 2021-07-31 作者:daque

programlover改编 package clipborad; import javax.swing.jtextarea; import java.awt.datatransfer.*; import java.awt.*; import javax.swing.*; import java.io.*; import javax.swing.undo.*; import javax.swing.text.*; import javax.swing.event.*; import java.awt.event.*; /** * title: 用java实现undo、redo,Copy、Paste、Cut * description:用java实现undo、redo,Copy、Paste、Cut * copyright: copyright (c) 2001 * company: * @author: 彭建雄 * @version 1.0 */ public class cliptextarea extends jtextarea implements clipboardowner{ clipboard strboard = this.gettoolkit().getsystemclipboard(); undomanager undo = new undomanager(); document doc = getdocument(); public cliptextarea() { doc.addundoableeditlistener(new undoableeditlistener(){ public void undoableedithappened(undoableeditevent e) { doc_addedit(e);} }); addactionmap(); } public void addactionmap() { getactionmap().put("undo", new abstractaction("undo") { public void actionperformed(actionevent evt) { try { if (undo.canundo()) { undo.undo(); } } catch (cannotundoexception e) { } } }); getinputmap().put(keystroke.getkeystroke("control z"), "undo"); getactionmap().put("redo",new abstractaction("redo") { public void actionperformed(actionevent evt) { try { if (undo.canredo()) { undo.redo(); } } catch (cannotredoexception e) { } } }); getinputmap().put(keystroke.getkeystroke("control r"), "redo"); getactionmap().put("copy",new abstractaction("copy") { public void actionperformed(actionevent evt) { copy(); } }); getinputmap().put(keystroke.getkeystroke("control c"), "copy"); getactionmap().put("cut",new abstractaction("cut") { public void actionperformed(actionevent evt) { cut(); } }); getinputmap().put(keystroke.getkeystroke("control x"), "cut"); getactionmap().put("paste",new abstractaction("paste") { public void actionperformed(actionevent evt) { paste(); } }); getinputmap().put(keystroke.getkeystroke("control v"), "paste"); } public void copy() { string scopy = getselectedtext(); if (scopy != null) { stringselection sselection = new stringselection(scopy); strboard.setcontents(sselection,this); } } public void cut() { string scopy = getselectedtext(); if (scopy != null) { stringselection sselection = new stringselection(scopy); strboard.setcontents(sselection,this); this.replaceselection(""); } } public void paste() { transferable stransf = strboard.getcontents(this); if (stransf!=null) { try { string spaste = (string)stransf.gettransferdata(dataflavor.stringflavor); this.replacerange(spaste,getselectionstart(),getselectionend()); } catch(unsupportedflavorexception e) { } catch(ioexception ioe) { } } } public void lostownership(clipboard clipboard,transferable contents) { } void doc_addedit(undoableeditevent e) { undo.addedit(e.getedit()); } } 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.