我正在使用Java中的Selenium WebDriver - 如何执行Ctrl+V
命令将已存在于剪贴板上的文本粘贴到编辑框中?
答案 0 :(得分:0)
这是一种做法......
public static void main(String[] args) {
final JTextField textField = new JTextField(25);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(textField, BorderLayout.NORTH);
frame.add(new JButton(new AbstractAction("Paste") {
public void actionPerformed(ActionEvent e) {
Action pasteAction = TransferHandler.getPasteAction();
ActionEvent actionEvent = new ActionEvent(textField, 0, "paste");
pasteAction.actionPerformed(actionEvent);
}
}), BorderLayout.SOUTH);
frame.setSize(300, 500);
frame.setVisible(true);
}
答案 1 :(得分:0)
首先,如果java app作为applet或JNLP运行,则需要对其进行签名。 JRE沙箱不允许与您的程序共享system.copy粘贴缓冲区。但是,如果您正在运行存储在本地文件系统上的jar文件,则这不是问题。
要访问复制粘贴缓冲区,您可以尝试包中的类 java.awt.datatransfer中 您可以在此处找到一个用法示例: http://www.javapractices.com/topic/TopicAction.do?Id=82
复制和粘贴实际上非常复杂,因为不同的应用程序可以允许传输不同类型的数据。这种复杂性由DataFlavor处理。参见:
https://blogs.oracle.com/JavaFundamentals/entry/transferring_text_through_the_clipboard