Javafx-程序结束时删除剪贴板内容
我通过剪贴板设置剪贴板内容。setContent(content)工作正常。 但当程序通过Javafx-程序结束时删除剪贴板内容,java,javafx,clipboard,Java,Javafx,Clipboard,我通过剪贴板设置剪贴板内容。setContent(content)工作正常。 但当程序通过System.exit(0)结束时,剪贴板内容将被删除。 当我通过点击标题栏中的十字来结束程序时,剪贴板仍然处于设置状态。 那么,有没有一种方法可以结束我的程序,它不会像系统那样删除剪贴板。退出(0)会吗 谢谢:)也许您使用的是本地剪贴板,而不是系统剪贴板。 请阅读以下示例: 顺便说一句:我还使用Windows 8.1和Java Version 8 Update 45尝试以下代码: import java.
System.exit(0)
结束时,剪贴板内容将被删除。
当我通过点击标题栏中的十字来结束程序时,剪贴板仍然处于设置状态。
那么,有没有一种方法可以结束我的程序,它不会像系统那样删除剪贴板。退出(0)
会吗
谢谢:)也许您使用的是本地剪贴板,而不是系统剪贴板。 请阅读以下示例:
顺便说一句:我还使用Windows 8.1和Java Version 8 Update 45尝试以下代码:
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
public class Main {
public static void main(String[] args) {
StringSelection selection = new StringSelection("sample");
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);
System.exit(0);
}
}
即使在程序结束及其系统之后,剪贴板也会正确填充。退出(0)
调用
您提到要调用剪贴板.setContent(content)
,但该类不提供这样的方法
我会仔细检查您的代码并与上面的代码进行比较。还要检查以正确调用正确的方法
更新
前面的回答基于Awt/Swing应用的假设。然而,在您对问题进行了最新编辑之后,它似乎是一个JavaFX应用程序
解决了以下建议:将对
System.exit(0)
的调用替换为Platform.exit()
您使用的是哪个操作系统?哪个Java版本?Windows8.1和JavaVersion8Update45i是这样做的:FinalClipboard剪贴板=Clipboard.getSystemClipboard();最终剪贴簿内容=新剪贴簿内容();content.putString(“此处字符串”);剪贴板。设置内容(content)这应该是正确的方法。我看到您正在使用JavaFX的剪贴板?是的。是否有一个命令与标题栏上的十字架相同?或者除了System.exit(0)还有其他选择吗?我也尝试了同样的方法,对我来说效果非常好。可能有另一个应用程序正在运行并覆盖您的剪贴板。是否运行应用程序的旧实例?存在一个ClipboardContent类,其中存在.setContent()。这个解决方案对我来说不起作用,因为在Javafx中使用awt似乎有问题。但是您刚刚将标题从Java更改为Javafx,这当然会改变上下文(以及可能的答案)是的。对不起。我忘了在前面更改它。您是否尝试调用Platform.exit()而不是System.exit(0)?好的,我会相应地更新答案,否则AWT和JavaFX会错误地混合在一起