国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用JAVA實(shí)現(xiàn)Undo、Redo,Copy、Paste、Cut

2019-11-18 13:24:37
字體:
供稿:網(wǎng)友

  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實(shí)現(xiàn)Undo、Redo,Copy、Paste、Cut
  * Description:用JAVA實(shí)現(xiàn)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());
   }
  
  }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 洮南市| 洪泽县| 江北区| 绥江县| 岱山县| 淳安县| 区。| 滕州市| 鸡东县| 建瓯市| 资中县| 广州市| 镇康县| 手游| 门头沟区| 桓仁| 绥中县| 娱乐| 云南省| 廉江市| 高台县| 临洮县| 洛宁县| 五家渠市| 永顺县| 屯昌县| 拉萨市| 土默特左旗| 迁西县| 丰宁| 南川市| 宜章县| 台安县| 峨眉山市| 永川市| 宜城市| 平潭县| 屏东县| 海门市| 宁都县| 安宁市|