我想将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 :) –