2011-07-09 171 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); 
}