2011-07-09 109 views
3

我想从java中的系统剪贴板中粘贴。我将如何做到这一点?如何使用系统剪贴板从java中粘贴?

+1

难道你看看'java.awt.Toolkit中.getSystemClipboard()'和'Clipboard'类?你的问题到底是什么? – EboMike

+0

是啊我已经在很多网站上看过它,但是它们将它作为字符串返回,但我想模拟一个控件v – Globmont

回答

9

虽然机器人班会的工作,它不是优雅直接使用系统剪贴板,这样的:

private void onPaste(){ 
    Clipboard c = Toolkit.getDefaultToolkit().getSystemClipboard(); 
    Transferable t = c.getContents(this); 
    if (t == null) 
     return; 
    try { 
     jtxtfield.setText((String) t.getTransferData(DataFlavor.stringFlavor)); 
    } catch (Exception e){ 
     e.printStackTrace(); 
    }//try 
}//onPaste 
5

你可以使用机器人类这样

try 
{ 
    Robot r = new Robot(); 
    r.keyPress(KeyEvent.VK_CONTROL); 
    r.keyPress(KeyEvent.VK_V); 
    r.keyRelease(KeyEvent.VK_CONTROL); 
    r.keyRelease(KeyEvent.VK_V); 

} 
catch(Exception e) 
{ 

} 
+0

这不起作用。 –

2

您还可以使用剪贴板类尝试。

2

试试这个

public static void type(String characters) { 
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); 
StringSelection stringSelection = new StringSelection(characters); 
clipboard.setContents(stringSelection, instance); 
//control+V is for pasting... 
robot.keyPress(KeyEvent.VK_CONTROL); 
robot.keyPress(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_V); 
robot.keyRelease(KeyEvent.VK_CONTROL); 
}