Java:如何使用Ctrl + V命令将剪贴板上的文本粘贴到UI对象中?

时间:2012-07-02 20:26:53

标签: java clipboard

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

2 个答案:

答案 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