将字符串复制到剪贴板不会';t工作(Java)

将字符串复制到剪贴板不会';t工作(Java),java,swing,clipboard,Java,Swing,Clipboard,我试图在用户单击适当的按钮后将字符串复制到剪贴板。这个特定的操作应该在JDialog中执行。 这是我的代码的一部分,应该在这里进行复制: btnCopy.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { StringSelection selection = new StringSelection(txtarContent.getText());

我试图在用户单击适当的按钮后将字符串复制到剪贴板。这个特定的操作应该在JDialog中执行。
这是我的代码的一部分,应该在这里进行复制:

btnCopy.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        StringSelection selection = new StringSelection(txtarContent.getText());
        Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
        clipboard.setContents(selection, selection);

    }
});
我正在MacOSX(10.12.4)上使用Eclipse(neon.3)


根据评论中的问题进行编辑:

  • 不会引发异常(也不会引发任何错误/警告)
  • 执行代码后,剪贴板保持不变

    • 问题已解决:
      问题不在解决方案中,而在我的代码中
      现在按钮的侦听器似乎不工作,因此没有执行任何代码。


      作为初学者,这对我来说是一个很好的教训,可以检查最明显的事情,比如倾听者是否工作。谢谢大家的帮助。

      是否引发异常?调用
      setContents
      时可能出现
      IllegalException
      ?我编辑了您的帖子,以保留引起问题的部分。将有缺陷的代码保持在尽可能小的大小(尽管你的问题问得很好,但你不必发布“因为测试而不会导致问题”的部分)。此外,最终的结果是什么?剪贴板设置为空、复制错误或无修改?未引发异常。最后,剪贴板和以前一样,没有任何修改。谢谢你的编辑,内森。这是我的第一个问题,你的建议很有帮助。:)@不朽者,贴一张证明问题的帖子。通过这种方式,人们可以测试代码,以确定代码是否错误,或者是否是平台问题。我很高兴您让它正常工作。但是你的代码还是有问题。剪贴板调用应该是:clipboard.setContents(selection,selection);StringSelection既是可转让的,也是剪贴板所有者,因此它可以正确响应剪贴板内容中的更改。感谢您的建议。为了不误导其他初学者,我编辑了这篇题帖。我会记住的。:)