重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.
成都创新互联专业为企业提供梨林网站建设、梨林做网站、梨林网站设计、梨林网站制作等企业网站建设、网页设计与制作、梨林企业网站模板建站服务,十多年梨林做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
往剪切板写文本数据(就是常说的String拉)
Java代码
protected
static
void
setClipboardText(Clipboard
clip,
String
writeMe)
{
Transferable
tText
=
new
StringSelection(writeMe);
clip.setContents(tText,
null);
}
protected
static
void
setClipboardText(Clipboard
clip,
String
writeMe)
{
Transferable
tText
=
new
StringSelection(writeMe);
clip.setContents(tText,
null);
}
2.
从指定的剪切板中获取文本内容
Java代码
protected
static
String
getClipboardText(Clipboard
clip)
throws
Exception{
//
获取剪切板中的内容
Transferable
clipT
=
clip.getContents(null);
if
(clipT
!=
null)
{
//
检查内容是否是文本类型
if
(clipT.isDataFlavorSupported(DataFlavor.stringFlavor))
return
(String)clipT.getTransferData(DataFlavor.stringFlavor);
}
return
null;
}
Java代码复制文件夹时,则需要利用Flie类在目标文件夹中创建相应的目录,并且使用递归方法,代码如下:
import java.io.*;
/**
* 复制文件夹或文件夹
*/
public class CopyDirectory {
// 源文件夹
static String url1 = "F:/photos";
// 目标文件夹
static String url2 = "D:/tempPhotos";
public static void main(String args[]) throws IOException {
// 创建目标文件夹
(new File(url2)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(url1)).listFiles();
for (int i = 0; i file.length; i++) {
if (file[i].isFile()) {
// 复制文件
copyFile(file[i],new File(url2+file[i].getName()));
}
if (file[i].isDirectory()) {
// 复制目录
String sourceDir=url1+File.separator+file[i].getName();
String targetDir=url2+File.separator+file[i].getName();
copyDirectiory(sourceDir, targetDir);
}
}
}
// 复制文件
public static void copyFile(File sourceFile,File targetFile)
throws IOException{
// 新建文件输入流并对它进行缓冲
FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff=new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff=new BufferedOutputStream(output);
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len =inBuff.read(b)) != -1) {
outBuff.write(b, 0, len);
}
// 刷新此缓冲的输出流
outBuff.flush();
//关闭流
inBuff.close();
outBuff.close();
output.close();
input.close();
}
// 复制文件夹
public static void copyDirectiory(String sourceDir, String targetDir)
throws IOException {
// 新建目标目录
(new File(targetDir)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i file.length; i++) {
if (file[i].isFile()) {
// 源文件
File sourceFile=file[i];
// 目标文件
File targetFile=new File(new File(targetDir).getAbsolutePath()+File.separator+file[i].getName());
copyFile(sourceFile,targetFile);
}
if (file[i].isDirectory()) {
// 准备复制的源文件夹
String dir1=sourceDir + "/" + file[i].getName();
// 准备复制的目标文件夹
String dir2=targetDir + "/"+ file[i].getName();
copyDirectiory(dir1, dir2);
}
}
}
}
Dic是没有定义的类,如果是你自己写的类,用import yourpackage.Dic导入,如果是第三方包,也要用import语句把类导入
如果是JTable.等java图形界面的组件,那么获取数据,赋值都比较简单.
但是看图片,是要写一个Excel的辅助功能, 这对java来说还是有点麻烦了.
最优建议:
Excel的功能. 那么最佳的建议,是使用vba 语言进行扩展.(微软出品,简单,方便,代码量极少) .
其次的建议:
C/C++ 键盘钩子 , 当读取到按键F9时 ,模拟键盘的复制粘贴等操作.
不推荐java , 但java也能勉强凑合解决这个问题:
因为java 很难获取系统底层的按键, Robot也很有局限, 比如窗口失去焦点的时候,读取不到F9按键. 所以java需要调用JNI c语言 比较繁琐. 比较简单的是调用JNA了,但代码量也不少.
当然了如果非要用java写,也可以,我手写了一个简单的JNA+Robot配合
效果图