我想將JTable
的單元格中的文本複製到剪貼板,使其可以粘貼到其他程序(如Microsoft Word)中。我有JTable
中的文字,但我不確定如何將其複製到剪貼板。使用Java將文本複製到剪貼板使用Java
回答
這個工作對我來說,是相當簡單:
導入這些:
import java.awt.datatransfer.*;
import java.awt.Toolkit;
然後把這個代碼片段,無論你想改變剪貼板:
String myString = "This text will be copied into clipboard when running this code!";
StringSelection stringSelection = new StringSelection(myString);
Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
clpbrd.setContents(stringSelection, null);
我剛剛嘗試過它,它的工作原理。不確定是否存在一些「良好實踐」缺陷,但它會解決您的問題!
LH
下面的類允許你爲一個字符串從剪貼板複製/粘貼/。
import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.event.KeyEvent;
import java.io.IOException;
public class SystemClipboard
{
public static void copy(String text)
{
Clipboard clipboard = getSystemClipboard();
clipboard.setContents(new StringSelection(text), null);
}
public static void paste() throws AWTException
{
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_V);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_V);
}
public static String get() throws Exception
{
Clipboard systemClipboard = getSystemClipboard();
DataFlavor dataFlavor = DataFlavor.stringFlavor;
if (systemClipboard.isDataFlavorAvailable(dataFlavor))
{
Object text = systemClipboard.getData(dataFlavor);
return (String) text;
}
return null;
}
private static Clipboard getSystemClipboard()
{
Toolkit defaultToolkit = Toolkit.getDefaultToolkit();
Clipboard systemClipboard = defaultToolkit.getSystemClipboard();
return systemClipboard;
}
}
可能需要一些粘貼OS X的邏輯,因爲它很特殊。 –
這是寫在一個裝飾的方式接受的答案:
Toolkit.getDefaultToolkit()
.getSystemClipboard()
.setContents(
new StringSelection(txtMySQLScript.getText()),
null
);
我發現這樣做,所以你可以從txtbox獲得輸入或有什麼更好的方式在文本中生成框,並能夠點擊一個按鈕來做到這一點。這裏是複製到剪貼板的代碼(2017/2018)!
import java.awt.datatransfer.*;
import java.awt.Toolkit;
private void /* Action performed when the copy to clipboard button is clicked */ {
String ctc = txtCommand.getText().toString();
StringSelection stringSelection = new StringSelection(ctc);
Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
clpbrd.setContents(stringSelection, null);
}
// txtCommand is the variable of a text box
希望這有助於! – ElementCodez
「2017/2018」是什麼意思? Java的特定版本?你使用哪個版本? –
- 1. 將文本複製到剪貼板使用剪貼板零在asp.net
- 2. 如何使用Java將圖像和文本複製到剪貼板?
- 3. 如何複製文件並使用Java將其粘貼到剪貼板?
- 4. 使用JavaScript將選定文本複製並粘貼到剪貼板使用JavaScript
- 5. 將文本複製到剪貼板
- 6. ZeroClipBoard - 將文本複製到剪貼板
- 7. 將文本複製到剪貼板
- 8. 將文本複製到剪貼板
- 9. XE7將文本複製到剪貼板
- 10. 使用jquery將文本複製到客戶端剪貼板
- 11. 使用javascript將文本複製到剪貼板
- 12. 使用VBA將文本複製到剪貼板
- 13. 使用JavaScript/PHP將文本複製到剪貼板
- 14. 繼續使用jQuery將textarea文本複製到剪貼板
- 15. 使用鼠標遞增地將文本複製到剪貼板
- 16. 如何使用AppleScript將文本複製到剪貼板
- 17. 如何使用Swift將文本複製到剪貼板/粘貼板
- 18. Perl複製到剪貼板不能使用剪貼板模塊
- 19. 複製到剪貼板使用Javascript
- 20. 用於剪切/複製/粘貼的Java剪貼板
- 21. Java:將文本複製到Apache Wicket Web應用程序中的剪貼板
- 22. 使用javascript將內容複製/粘貼到剪貼板
- 23. 複製文本到剪貼板使用「clipboard.js」無按鈕
- 24. 按鈕複製文本到剪貼板
- 25. 從asp:textbox複製文本到剪貼板
- 26. 複製的JTextPane文本到剪貼板
- 27. PyQT - 將文件複製到剪貼板
- 28. 將文件複製到剪貼板
- 29. 將文件複製到剪貼板Node.JS
- 30. 將WAV文件複製到剪貼板
我們可以setContents()與所有者太http://stackoverflow.com/questions/3591945/copying-to-clipboard-in-java –
@AquariusPower似乎傳遞'stringSelection'作爲第二參數'setContents(..)',使它成爲'ClipboardOwner',就像在鏈接的答案中一樣,沒有任何意義:查看[source](http://grepcode.com/file/repository.grepcode.com/java /root/jdk/openjdk/8u40-b25/java/awt/datatransfer/StringSelection.java#StringSelection.lostOwnership%28java.awt.datatransfer.Clipboard%2Cjava.awt.datatransfer.Transferable%29),ClipboardOwner的唯一方法'它實現了'lostOwnership(..)',它是空的。所以,第二個參數似乎是一個完全可選的回調。 –
@EvgeniSergeev它可能是有用的,如果我們擴展StringSelection :) –