Javafx - 程序结束时删除剪贴板内容
Javafx - Clipboard content deleted when program ends
我通过 clipboard.setContent(content)
设置剪贴板内容,效果很好。
但是当程序通过 System.exit(0)
结束时,剪贴板内容将被删除。
当我通过单击标题栏中的叉号结束程序时,剪贴板仍处于设置状态。
那么有没有办法结束我的程序,它不会像 System.exit(0)
那样删除剪贴板?
谢谢:)
可能您使用的是本地剪贴板而不是系统剪贴板。
阅读以下示例:System Clipboard
顺便说一句:我也使用 Windows 8.1 和 Java 版本 8 更新 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);
}
}
即使在程序结束并调用 System.exit(0)
之后,剪贴板也会正确填充。
您提到要调用 clipboard.setContent(content)
,但是 Clipboard class 没有提供这样的方法。
我会仔细检查您的代码并与上面的代码进行比较。还要检查以正确调用正确的方法。
更新
之前的回答是基于Awt/Swing应用的假设。但是,在您对问题进行最新编辑之后,它似乎是一个 JavaFX 应用程序。
以下建议奏效:将对 System.exit(0)
的调用替换为 Platform.exit()
。
我通过 clipboard.setContent(content)
设置剪贴板内容,效果很好。
但是当程序通过 System.exit(0)
结束时,剪贴板内容将被删除。
当我通过单击标题栏中的叉号结束程序时,剪贴板仍处于设置状态。
那么有没有办法结束我的程序,它不会像 System.exit(0)
那样删除剪贴板?
谢谢:)
可能您使用的是本地剪贴板而不是系统剪贴板。 阅读以下示例:System Clipboard
顺便说一句:我也使用 Windows 8.1 和 Java 版本 8 更新 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);
}
}
即使在程序结束并调用 System.exit(0)
之后,剪贴板也会正确填充。
您提到要调用 clipboard.setContent(content)
,但是 Clipboard class 没有提供这样的方法。
我会仔细检查您的代码并与上面的代码进行比较。还要检查以正确调用正确的方法。
更新
之前的回答是基于Awt/Swing应用的假设。但是,在您对问题进行最新编辑之后,它似乎是一个 JavaFX 应用程序。
以下建议奏效:将对 System.exit(0)
的调用替换为 Platform.exit()
。