Wednesday, August 17, 2005

Java : 剪貼簿


jeffwang711 wrote:
請問一下
java中有沒有方法
可以將剪貼簿的內容清除掉
痲煩解答
謝謝


所謂清除掉是指讓剪貼簿沒有內容可供貼上?
不 考慮 JNI 的話你可以把廢料放上剪貼簿,因為剪貼簿有獨佔性,而廢料指沒有人知道怎麼使用之,這樣一來任何程式都不知道怎麼處理剪貼簿裡的資料(實際也是真的沒有資 料可言),"貼上"的菜單or 工具鈕, hotkey 雖是 valid 但執行後不會貼上資料(MS Excel 的話則是連 Paste 菜單都變成 disabled,理論上一個應用程式若不懂如何處理 clipboard 裡的 data 都應該 disable 掉 "Paste" 選項)。

若你只是不想讓其他程式取得你的程式最後放到 clipboard 的數據,其實你的程式離開前放空字串(或其他無關緊要的數據)進 clipboard 就可以了。

package com.jsptw.j2se;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.IOException;
public class None implements Transferable {
public DataFlavor[] getTransferDataFlavors()
{
return new DataFlavor[0];
}
public boolean isDataFlavorSupported(DataFlavor flavor)
{
return false;
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException
{
throw new UnsupportedFlavorException(flavor);
}
}


java.awt.Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new com.jsptw.j2se.None(), null);

No comments: