您的位置:首页 > 编程语言 > Java开发

Java源码-简单的剪切板程序

2016-07-24 22:31 435 查看
看到有点实用性的代码,忍不住就想分享出来,因为在学习的过程中,我也是复用了大量的别人的代码一步一步往前走的。

同时,我也发现,一些像五子棋游戏等成套解决方案(project),很难找到免费的代码分享,毕竟,程序员也是要吃饭的,可以理解。

有一天,当你发现我的代码不再免费发布的时候,或许就是我在编程道路上小有所成的时候,呵呵。

代码如下:(基于《疯狂Java讲义》第11章稍有修改)

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.datatransfer.*;

public class SimpleClipBoard
{
private Frame f = new Frame("简单的剪贴板程序");
// 获取系统剪贴板
private Clipboard clipboard = Toolkit
.getDefaultToolkit().getSystemClipboard();
// 下面是创建本地剪贴板的代码
//Clipbaord clipboard = new Clipboard("cb");   //暂不清楚是何用途
// 用于复制文本的文本框
private TextArea jtaCopyTo = new TextArea(5,20);
// 用于粘贴文本的文本框
private TextArea jtaPaste = new TextArea(5,20);
private Button btCopy = new Button("Copy"); // 复制按钮
private Button btPaste = new Button("Paste"); // 粘贴按钮
public void init()
{
Panel p = new Panel();
p.add(btCopy);
p.add(btPaste);
btCopy.addActionListener(event ->
{
// 将一个多行文本域里的字符串封装成StringSelection对象
StringSelection contents = new
StringSelection(jtaCopyTo.getText());
// 将StringSelection对象放入剪贴板
clipboard.setContents(contents, null);
});
btPaste.addActionListener(event ->
{
// 如果剪贴板中包含stringFlavor内容
if (clipboard.isDataFlavorAvailable(DataFlavor.stringFlavor))
{
try
{
// 取出剪贴板中stringFlavor内容
String content = (String)clipboard
.getData(DataFlavor.stringFlavor);
jtaPaste.append(content);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
// 创建一个水平排列的Box容器
Box box = new Box(BoxLayout.X_AXIS);
// 将两个多行文本域放在Box容器中
box.add(jtaCopyTo);
box.add(jtaPaste);
// 将按钮所在Panel、Box容器添加到Frame窗口中
f.add(p,BorderLayout.SOUTH);
f.add(box,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
// 以匿名内部类的形式来创建事件监听器对象,用于关闭窗口
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new SimpleClipBoard().init();
}
}


运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: