`
happy20070302
  • 浏览: 96699 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 完成复制 剪切

    博客分类:
  • j2se
阅读更多
package test;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.datatransfer.StringSelection;
public  class T_menu extends JFrame implements MouseListener,ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
PopupMenu pm;
JTextArea text;
JPanel    panel;
MenuItem[] menuitem;
java.awt.datatransfer.Clipboard clipboard=java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); //获得系统剪切板
StringSelection stringSelection;
public T_menu(){
    menuitem=new MenuItem[4];
     menuitem[0]=new MenuItem("复制");
       menuitem[1]=new MenuItem("剪切");
     menuitem[2]=new MenuItem("粘贴");
     menuitem[3]=new MenuItem("退出");
    
    pm=new PopupMenu("pm");
    for(int i=0;i<4;i++){
    pm.add(menuitem[i]);
    menuitem[i].addActionListener(this);
    if(i==2)
    pm.addSeparator();//加分隔线
   
    }

    

add(pm);
text=new JTextArea(10,35);
panel=new JPanel();
    panel.add(text);
    add(panel);
setVisible(true);
setLocation(330,300);
setSize(450,350);
    setDefaultCloseOperation(2);
   
    addMouseListener(this);
    text.addMouseListener(this);
}
  public void mouseClicked(MouseEvent mec){
  System.out.println("here now");
  if(mec.getModifiers()==mec.BUTTON3_MASK)
  { System.out.println("here now");
  pm.show(this,mec.getX(),mec.getY());
 
  }
  }
  public void mousePressed(MouseEvent mec){}
  public void mouseReleased(MouseEvent mec){}
  public void mouseExited(MouseEvent mec){}
  public void mouseDragged(MouseEvent mec){}
  public void mouseEntered(MouseEvent mec){}
 
  public void actionPerformed(ActionEvent e){
  if(e.getSource()==menuitem[0]){//复制
  String temp=text.getSelectedText();
stringSelection=new StringSelection(temp);
clipboard.setContents(stringSelection,null);
System.out.println(temp);
  }
  if(e.getSource()==menuitem[1]){//剪切
  String temp=text.getSelectedText();
stringSelection=new StringSelection(temp);
clipboard.setContents(stringSelection,null);
int start=text.getSelectionStart();
int end=text.getSelectionEnd();
text.replaceRange("",start,end);
 
  }
  if(e.getSource()==menuitem[2]){//粘贴
  java.awt.datatransfer.Transferable transferable=clipboard.getContents(this);
    java.awt.datatransfer.DataFlavor flavor=java.awt.datatransfer.DataFlavor.stringFlavor;
if(transferable.isDataFlavorSupported(flavor))
{
try
{
int start=text.getSelectionStart();
int end=text.getSelectionEnd();
text.replaceRange("",start,end);
String str;
int n=text.getCaretPosition();
str=(String)transferable.getTransferData(flavor);
text.insert(str,n);
}
catch(Exception ee)
{

}
}
  }
  if(e.getSource()==menuitem[3]){//退出
 
  System.exit(0);
  }
  }

 
 
 
 
public static void main(String agr[]){
T_menu menu=new T_menu();
}
}





/*
*java.awt.datatransfer.Clipboard clipboard=java.awt.Toolkit.getDefaultToolkit().getSystemClipboard(); //获得系统剪切板

//下面是我的记事本部分功能.e.getSource()是当触发了某个事件.这里是copy的代码,下面依此是粘贴,等代码.可以看你需要的部分.(关于clopboard的).都是汉语拼音命名的变良.

else if(e.getSou
rce()==fuZhi||e.getSource()==fuZhi2)//////////Copy 'fuZhi' is 'Copy'

{
String temp=text.getSelectedText();
stringSelection=new StringSelection(temp);
clipboard.setContents(stringSelection,null);
}

else if(e.getSource()==jianQie||e.getSource()==jianQie2)//////////'jianQie' is 'Cut'
{
String temp=text.getSelectedText();
stringSelection=new StringSelection(temp);
clipboard.setContents(stringSelection,null);
int start=text.getSelectionStart();
int end=text.getSelectionEnd();
text.replaceRange("",start,end);
}
//这里是粘贴.主要是如何从系统剪切板里取得数据.
else if(e.getSource()==zhanTie||e.getSource()==zhanTie2)///////////////'zhanTie' is 'Paste'.
{
java.awt.datatransfer.Transferable transferable=clipboard.getContents(this);
java.awt.datatransfer.DataFlavor flavor=java.awt.datatransfer.DataFlavor.stringFlavor;
if(transferable.isDataFlavorSupported(flavor))
{
try
{
int start=text.getSelectionStart();
int end=text.getSelectionEnd();
text.replaceRange("",start,end);
String str;
int n=text.getCaretPosition();
str=(String)transferable.getTransferData(flavor);
text.insert(str,n);
}
catch(Exception ee)
{

}
     }
}
java.awt.datatransfer.Transferable transferable=clipboard.getContents(this);//传送操作提供数据的类定义接口.放在剪切板的东西都实现了这个接口.

java.awt.datatransfer.DataFlavor flavor=java.awt.datatransfer.DataFlavor.stringFlavor//在数据拖放期间,或在文件系统中,当每个实例显示在剪切板上时,它代表了数据格式的不透明概念.其实就是在系统内存中的东西是哪种类型.比如:文本,图片等.就象网页中的contentType="text/html"等一样.这里的stringFlavor是字符类型.
if(transferable.isDataFlavorSupported(flavor))//如果是XX类型.这里是把flavor传递进去.就是:如果是文本类型.那么我们才取得:
str=(String)transferable.getTransferData(flavor);
这样把剪切伴东西get出来.才强制成String 型不会出错.

*/
分享到:
评论

相关推荐

    JAVA快速图片剪切

    // 使用Graphics2D复制剪切区域到目标图像 Graphics2D g2d = croppedImage.createGraphics(); g2d.drawImage(originalImage, 0, 0, cropArea.width, cropArea.height, cropArea.x, cropArea.y, cropArea.x + ...

    java 复制图片到剪切板

    以上步骤完成之后,图片就被复制到了系统剪贴板中,可以粘贴到支持图片的任何地方,如图像编辑软件或者网页中。 在Swing应用中,特别是在涉及到二维码生成的场景下,例如“qrcode_swing”所暗示的,可能需要使用`...

    java File类字节流(复制、删除、剪切,下载)操作,多线程

    总的来说,Java的`File`类和字节流结合可以完成复杂的文件操作,而在多线程环境下,我们可以利用生产者消费者模型来提高文件操作的效率,尤其在处理大文件时,这种并发处理方式显得尤为重要。通过熟练掌握这些知识,...

    java 文本文件 支持新建,打开,复制,剪切...

    在Java编程语言中,处理文本文件是常见...综上所述,这个Java程序可能是一个简单的文本编辑器,提供了基本的文件操作功能,包括创建、打开、复制和剪切文本文件。理解这些概念对于任何Java开发者来说都是基础且重要的。

    Java 剪贴板演示程序-完成复制粘贴功能.rar

    Java剪贴板演示程序是基于Java编程语言设计的一个实用示例,主要目的是向开发者展示如何在Java中实现复制和粘贴的功能。这个程序允许用户监控剪贴板的实时状态,并通过点击界面按钮来执行常见的复制和粘贴操作。在...

    Java 操控键盘,鼠标,剪切板Demo

    例如,你可以用它们来实现自动化测试脚本,让程序自动完成一系列操作,如登录网站、填写表单、复制粘贴数据等。在开发过程中,`Robot`类和其他相关API的使用需谨慎,因为它们可能会影响到用户的正常操作。

    Java剪贴板的使用

    它充当了一个临时存储区,当用户执行“复制”或“剪切”操作时,所选的数据会被放置到剪贴板上;随后,通过“粘贴”操作可以从剪贴板上获取这些数据。剪贴板支持多种类型的数据,如文本、图像、文件路径等。 #### ...

    计算机软件-商业源码-实例69 使用剪切板复制图片.zip

    6. **关闭剪切板**:完成操作后,关闭剪切板,释放资源。 7. **验证**:可以编写一个小的接收程序,检查剪切板上的数据是否正确。 此外,这个实例可能还涵盖了错误处理和多线程安全问题,因为剪切板操作可能会与...

    简单的剪切板.zip

    1. GUI框架:如Tkinter(Python)、Windows Forms(C#)或JavaFX(Java),用于创建具有复制、剪切和粘贴按钮的用户界面。这些按钮的点击事件会被绑定到相应的操作函数上。 2. 剪切板API:每个编程语言都有对应的...

    android 复制 粘贴 剪切功能应用

    在Android开发中,复制、粘贴和剪切功能是用户界面的基本操作,使得用户能够方便地在不同位置间移动和复制信息。以下是如何在Android应用中实现这些功能的详细步骤。 首先,Android提供了`ClipboardManager`类来...

    java记事本 简单的java记事本

    4. **文本处理**:可能会有方法处理文本的复制、粘贴、剪切和查找替换等功能,这涉及到对字符串的操作。 5. **异常处理**:在进行文件操作时,必须处理可能出现的IOException,确保程序在遇到错误时能够优雅地处理...

    java记事本源代码

    基础功能通常包括打开、保存、新建、复制、粘贴、剪切、查找、替换以及文字的格式化等。然而,由于它不完善,可能存在一些功能缺失,如撤销/重做、搜索高亮、拼写检查、支持多种文件格式或者界面美化等。这样的项目...

    用java编写简单记事本

    - 编写完成的`testText.java`文件需要通过`javac`命令编译成字节码文件,然后使用`java`命令运行。 总的来说,创建一个简单的Java记事本涉及到多方面的编程概念,包括对象的创建、文件的读写、用户界面的设计和...

    Java简单记事本(有注释)

    同时,还需要处理文本的选择、复制、剪切和粘贴等操作,这些可以通过`JTextArea`的`getSelectedText()`、`copy()`、`cut()`和`paste()`方法实现。 4. **文件I/O操作**:记事本需要读取和保存文件,这涉及到了Java的...

    JAVA编辑器.

    在本次课程设计中,学生们被要求设计一个名为"JAVA编辑器"的图形界面文本编辑器,这个编辑器主要用于编辑Java语言源...通过完成这个项目,学生不仅可以增强JAVA编程能力,还能提高他们的软件工程思维和问题解决能力。

    java编辑器课程设计报告

    - **菜单系统**:包括文件操作(新建、打开、保存、另存为、退出)和编辑操作(复制、剪切、粘贴、删除、查找、替换、插入时间)。 - **染色模块**:实现关键字和类库名的高亮显示,关键在于理解和使用...

    基于Java 的notepad记事本

    6. **剪贴板操作**:NotePadClipboard.java可能包含了对系统剪贴板的支持,这涉及到`java.awt.datatransfer`包中的Clipboard类和Transferable接口,用于复制、剪切和粘贴文本。 7. **异常处理**:在处理文件I/O时,...

    java文本编辑器.

    它不仅具备基础的文本编辑功能,如新建、打开、保存文件,还支持对文本进行格式化处理,包括设置字体、字号、对齐方式、背景色和前景色,以及复制、粘贴、剪切、查找和替换等操作。此外,还能在文本中插入对象,提供...

    华科java程序设计-简易写字板程序设计

    【标题】:“华科java程序设计-简易写字板程序设计” 在计算机科学领域,Java是一种广泛应用的编程语言,尤其...通过完成这样的作业,学生可以更好地理解和应用所学的Java知识,为将来更复杂的软件开发打下坚实基础。

    记事本,复制,粘贴,撤销,全选

    解压可以用WinRAR、7-Zip等工具完成,解压后查看文件内容则可以直接双击或用记事本打开`.txt`文件。如果文件是其他格式,可能需要相应软件支持。总之,理解并熟练运用记事本的基本操作,是每位电脑用户必备的技能之...

Global site tag (gtag.js) - Google Analytics