Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1562620
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 19:26:12

一起学习
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()); } } 下载本文示例代码


用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut用JAVA实现Undo、Redo,Copy、Paste、Cut
阅读(339) | 评论(0) | 转发(0) |
0

上一篇:让Java说话

下一篇:计算Java日期

给主人留下些什么吧!~~