如何System Clipboard在Java中清除?我试过了
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(null, null);
Run Code Online (Sandbox Code Playgroud)
但它只是扔了一个NPE:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: contents
at sun.awt.datatransfer.SunClipboard.setContents(SunClipboard.java:98)
Run Code Online (Sandbox Code Playgroud)
您可以创建一个Transferable明确不包含任何数据的特殊内容,如本博客文章中所述:
clipboard.setContents(new Transferable() {
public DataFlavor[] getTransferDataFlavors() {
return new DataFlavor[0];
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
return false;
}
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException {
throw new UnsupportedFlavorException(flavor);
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
StringSelection stringSelection = new StringSelection("");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(
stringSelection, null);
Run Code Online (Sandbox Code Playgroud)
自从 StringSelection implements Transferable
public class StringSelection implements Transferable, ClipboardOwner
Run Code Online (Sandbox Code Playgroud)