检查剪贴板内容

时间:2014-02-16 13:54:12

标签: java clipboard

所以我在我的游戏中添加了一个功能,您可以将剪贴板复制到聊天框中,这样我就有了这个代码

public static String getClipboardContents() {
    String result = "";
    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    Transferable contents = clipboard.getContents(null);
    boolean hasTransferableText = (contents != null)
            && contents.isDataFlavorSupported(DataFlavor.stringFlavor);
    if (hasTransferableText) {
        try {
            result = (String) contents.getTransferData(DataFlavor.stringFlavor);
        } catch (UnsupportedFlavorException ex) {
            System.out.println(ex);
            ex.printStackTrace();
        } catch (IOException ex) {
            System.out.println(ex);
            ex.printStackTrace();
        }
    }
    return result;

}

}

if ((keyevent.isControlDown() && keyevent.getKeyCode() == KeyEvent.VK_V)) {
        client.inputString += client.getClipboardContents();
        client.inputTaken = true;
    }

所以我想为什么不这样做,当你的剪贴板是空的时候,按钮显示为灰色,当它不显示时它会显示另一个图像所以我在绘制我的按钮的地方做了这个空白

private void drawChatTools() {

//Draws All tools buttons to start with 
Pastebtn.drawAdvancedSprite(440,106);
Clearbtn.drawAdvancedSprite(458,107);
Weelbtn.drawAdvancedSprite(476,106);

}

但是我想知道如何制作它以便java代码可以查看剪贴板是否为空?

1 个答案:

答案 0 :(得分:1)

  

所以我想当你的剪贴板是空的时候为什么不这样做呢   按钮显示灰色

这通常最终搞砸了其他剪贴板功能。您不应仅为了点亮按钮或菜单而执行任何侵入式剪贴板监视。可以看到可用的格式,但如果您实际检查数据,那么您将生效,导致粘贴。这会产生各种意想不到的后果,例如触发延迟渲染机制,以及可能导致网络流量(在远程桌面或同步桌面/剪贴板应用程序的情况下)。

剪贴板滥用是黑暗面的路径。剪贴板滥用会导致愤怒。愤怒导致仇恨。仇恨导致痛苦。