3

我正在使用 Java 中的 Selenium WebDriver – 如何执行Ctrl+V命令将剪贴板上已经存在的文本粘贴到编辑框中?

4

2 回答 2

0

首先,如果 java 应用程序作为 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

于 2012-07-02T21:05:53.590 回答
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);
}
于 2012-07-02T21:00:22.330 回答