JTextArea.copy() 程序退出时清除剪贴板
我有一个带有 JTextArea 组件的 JDialog。此对话框向用户显示运行程序时要使用哪些参数以使其运行他们刚刚设置的模式。我在对话框上有一个按钮可以将参数复制到剪贴板。这使用了 JTextArea 对象上的 copy() 方法。
这工作得很好,剪贴板包含正确的文本,直到程序关闭。然后剪贴板就丢失了。无论如何,有没有办法在程序退出后保留它?正常的操作是退出程序并使用参数重新启动它。
这可能听起来很奇怪,但想法是用户将使用 GUI 设置环境,然后使用 cron 或类似的参数运行它。
I have a JDialog with a JTextArea component. This dialog shows the user what arguments to use when running the program to have it run the mode they just set up. I have a button on the dialog to copy the arguments to clipboard. This uses the copy() method on the JTextArea object.
This works perfectly and the clipboard contains the correct text up until the program is closed. Then the clipboard is lost. Is there anyway to have it retain this after the program is quit? The normal operation would be to then quit the program and start it again with the arguments.
This might sound strange but the idea is the user would setup an environment with the GUI and then run it with the arguments in a cron or similar.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我刚刚了解到,Java中有两个剪贴板,一个本地剪贴板,一个系统剪贴板。如果你只是拿了本地剪贴板,会解释一些事情。
这是一个使用系统剪贴板的示例。希望它能解决您的问题!
I just learned, that there are two clipboards in Java, a local one and a system one. Would explain something, if you just took the local clipboard.
Here's an example that uses the system clipboard. Hope it solves your issue!
当我使用 Ctrl+C 复制文本组件的内容时,效果很好。因此,请尝试使用提供的 Action(即 Ctrl+C 使用的操作)来执行复制,而不是使用 copy() 方法:
Works fine for me when I use Ctrl+C to copy the contents of the text component. So try using the supplied Action (which is what Ctrl+C uses) to do the copy instead of the copy() method:
您可以使用Robot来模拟Ctrl + c,
即使您关闭程序后,它也肯定会保留在剪贴板中。
或者您可以尝试
在 Windows 7 中适合我的方法。
You can use Robot to simulate Ctrl + c
This will definitely stays in the clipboard even after you close your program.
Or you can try
which works for me in Windows 7.
我建议使用 首选项 API< /a> 为此。
I would suggest using the Preferences API for this instead.
对我来说,这就足够了:
For me, this is just enough: