java简单实现复制 粘贴 剪切功能代码分享
程序员文章站
2024-02-29 20:55:10
废话不多说,直接上代码,小伙伴们仔细看下注释吧。
复制代码 代码如下:
/*简单的复制 剪切 粘贴 功能
操作:
&...
废话不多说,直接上代码,小伙伴们仔细看下注释吧。
复制代码 代码如下:
/*简单的复制 剪切 粘贴 功能
操作:
复制测试: 输入文本选择文本,点击复制,然后将光标放在右边的textarea,点击粘贴
剪切测试:输入文本选择文本,然后将光标放在右边的textarea,点击剪切
*/
import javax.swing.*;
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
public class demo implements actionlistener
{
private jframe jf;
private jpanel p1, p2, p3; //上中下
private jlabel title;
private jtextarea edit,showmsg;
private jbutton copy,paste,cut;
clipboard clipboard;//获取系统剪贴板。
public demo()
{
this.init();
}
//界面初始化
public void init()
{
jf = new jframe("复制粘贴");
p1 = new jpanel(); //存放标题
p2 = new jpanel(); //存放jtextarea showmsg
p3 = new jpanel(); //存放 button
title = new jlabel("复制粘贴剪切演示");
edit = new jtextarea("请输入内容",15,25);
edit.setlinewrap(true);
showmsg = new jtextarea(15,25);
showmsg.setlinewrap(true);
showmsg.setenabled(false);
copy = new jbutton("复制");
paste = new jbutton("粘贴");
cut = new jbutton("剪切");
clipboard = jf.gettoolkit().getsystemclipboard();
p1.setlayout(new flowlayout());
p1.setsize(599,30);
p1.add(title);
p2.setlayout(new flowlayout());
p2.setbackground(color.gray);
p2.add(edit);
p2.add(showmsg);
p3.setlayout(new flowlayout());
p3.add(copy);
p3.add(paste);
p3.add(cut);
//添加事件监听机制
copy.addactionlistener(this);
paste.addactionlistener(this);
cut.addactionlistener(this);
// this.copystr(copy);
jf.add(p1, borderlayout.north);
jf.add(p2, borderlayout.center);
jf.add(p3, borderlayout.south);
jf.setlocation(400,200);
jf.setsize(600,450);
jf.setresizable(false);
jf.setvisible(true);
}
//事件处理
public void actionperformed(actionevent e)
{
if(e.getsource() == copy)
{
string temptext = edit.getselectedtext(); //拖动鼠标选取文本
//创建能传输指定 string 的 transferable。
stringselection edittext =
new stringselection(temptext);
/**
将剪贴板的当前内容设置到指定的 transferable 对象,
并将指定的剪贴板所有者作为新内容的所有者注册。
*/
clipboard.setcontents(edittext,null);
}else if(e.getsource() == cut)
{
string temptext = edit.getselectedtext();
stringselection edittext =
new stringselection(temptext);
clipboard.setcontents(edittext,null);
int start= edit.getselectionstart();
int end = edit.getselectionend();
showmsg.replacerange("",start,end) ; //从text1中删除被选取的文本。
}else if(e.getsource() == paste)
{
transferable contents = clipboard.getcontents(this);
dataflavor flavor= dataflavor.stringflavor;
if( contents.isdataflavorsupported(flavor))
{
try
{
string str;
str = (string)contents.gettransferdata(flavor);
showmsg.append(str);
}catch(exception ex)
{
ex.printstacktrace();
}
}
}
}
public static void main(string[] args)
{
new demo();
}
}
代码很简单,使用也很方便,小伙伴们有更好的思路的话,请一定要告诉我。
上一篇: 网络编程--TCP/UDP 通信模型