1.
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供梨林網(wǎng)站建設(shè)、梨林做網(wǎng)站、梨林網(wǎng)站設(shè)計(jì)、梨林網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、梨林企業(yè)網(wǎng)站模板建站服務(wù),十多年梨林做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
往剪切板寫文本數(shù)據(jù)(就是常說的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.
從指定的剪切板中獲取文本內(nèi)容
Java代碼
protected
static
String
getClipboardText(Clipboard
clip)
throws
Exception{
//
獲取剪切板中的內(nèi)容
Transferable
clipT
=
clip.getContents(null);
if
(clipT
!=
null)
{
//
檢查內(nèi)容是否是文本類型
if
(clipT.isDataFlavorSupported(DataFlavor.stringFlavor))
return
(String)clipT.getTransferData(DataFlavor.stringFlavor);
}
return
null;
}
Java代碼復(fù)制文件夾時(shí),則需要利用Flie類在目標(biāo)文件夾中創(chuàng)建相應(yīng)的目錄,并且使用遞歸方法,代碼如下:
import?java.io.*;??
/**?
*?復(fù)制文件夾或文件夾?
*/??
public?class?CopyDirectory?{??
//?源文件夾???
static?String?url1?=?"F:/photos";??
//?目標(biāo)文件夾???
static?String?url2?=?"D:/tempPhotos";??
public?static?void?main(String?args[])?throws?IOException?{??
//?創(chuàng)建目標(biāo)文件夾???
(new?File(url2)).mkdirs();??
//?獲取源文件夾當(dāng)前下的文件或目錄???
File[]?file?=?(new?File(url1)).listFiles();??
for?(int?i?=?0;?i??file.length;?i++)?{??
if?(file[i].isFile())?{??
//?復(fù)制文件???
copyFile(file[i],new?File(url2+file[i].getName()));??
}??
if?(file[i].isDirectory())?{??
//?復(fù)制目錄???
String?sourceDir=url1+File.separator+file[i].getName();??
String?targetDir=url2+File.separator+file[i].getName();??
copyDirectiory(sourceDir,?targetDir);??
}??
}??
}??
//?復(fù)制文件???
public?static?void?copyFile(File?sourceFile,File?targetFile)???
throws?IOException{??
//?新建文件輸入流并對它進(jìn)行緩沖???
FileInputStream?input?=?new?FileInputStream(sourceFile);??
BufferedInputStream?inBuff=new?BufferedInputStream(input);??
//?新建文件輸出流并對它進(jìn)行緩沖???
FileOutputStream?output?=?new?FileOutputStream(targetFile);??
BufferedOutputStream?outBuff=new?BufferedOutputStream(output);??
//?緩沖數(shù)組???
byte[]?b?=?new?byte[1024?*?5];??
int?len;??
while?((len?=inBuff.read(b))?!=?-1)?{??
outBuff.write(b,?0,?len);??
}??
//?刷新此緩沖的輸出流???
outBuff.flush();??
//關(guān)閉流???
inBuff.close();??
outBuff.close();??
output.close();??
input.close();??
}??
//?復(fù)制文件夾???
public?static?void?copyDirectiory(String?sourceDir,?String?targetDir)??
throws?IOException?{??
//?新建目標(biāo)目錄???
(new?File(targetDir)).mkdirs();??
//?獲取源文件夾當(dāng)前下的文件或目錄???
File[]?file?=?(new?File(sourceDir)).listFiles();??
for?(int?i?=?0;?i??file.length;?i++)?{??
if?(file[i].isFile())?{??
//?源文件???
File?sourceFile=file[i];??
//?目標(biāo)文件???
File?targetFile=new?File(new?File(targetDir).getAbsolutePath()+File.separator+file[i].getName());??
copyFile(sourceFile,targetFile);??
}??
if?(file[i].isDirectory())?{??
//?準(zhǔn)備復(fù)制的源文件夾???
String?dir1=sourceDir?+?"/"?+?file[i].getName();??
//?準(zhǔn)備復(fù)制的目標(biāo)文件夾???
String?dir2=targetDir?+?"/"+?file[i].getName();??
copyDirectiory(dir1,?dir2);??
}??
}??
}??
}
Dic是沒有定義的類,如果是你自己寫的類,用import yourpackage.Dic導(dǎo)入,如果是第三方包,也要用import語句把類導(dǎo)入
如果是JTable.等java圖形界面的組件,那么獲取數(shù)據(jù),賦值都比較簡單.
但是看圖片,是要寫一個(gè)Excel的輔助功能, 這對java來說還是有點(diǎn)麻煩了.
最優(yōu)建議:
Excel的功能. 那么最佳的建議,是使用vba 語言進(jìn)行擴(kuò)展.(微軟出品,簡單,方便,代碼量極少) .
其次的建議:
C/C++ 鍵盤鉤子 , 當(dāng)讀取到按鍵F9時(shí) ,模擬鍵盤的復(fù)制粘貼等操作.
不推薦java , 但java也能勉強(qiáng)湊合解決這個(gè)問題:
因?yàn)閖ava 很難獲取系統(tǒng)底層的按鍵, Robot也很有局限, 比如窗口失去焦點(diǎn)的時(shí)候,讀取不到F9按鍵. ? 所以java需要調(diào)用JNI c語言 比較繁瑣. 比較簡單的是調(diào)用JNA了,但代碼量也不少.
當(dāng)然了如果非要用java寫,也可以,我手寫了一個(gè)簡單的JNA+Robot配合
效果圖