如何允许用户从JTextArea中复制、剪切和粘贴选定的单词?

5

假设我创建了一个GUI,其主面板是一个JTextArea,上面有一个菜单栏(包含复制和粘贴按钮,通过ctrl+c和ctrl+v快捷键操作)。

在程序工作一段时间后,它将在JTextArea中输出一堆数据,然后我想允许用户从JTextArea中选择(高亮显示)单词,并将它们复制,剪切或粘贴到其他地方,如记事本等。

那么,我应该使用什么类型的监听器来检测选择,获取所选单词并将它们放入操作系统存储的复制内容的位置?请具体说明,非常感谢任何帮助! :)

2个回答

9

操作系统中的剪切、复制和粘贴快捷键在 JTextArea 中默认可用。

然而,JTextArea 扩展自 JTextComponent ,后者具有 cut()copy()paste() 方法,如果您想添加自定义操作(如行上下文菜单、顶部菜单项或工具栏按钮),则可以调用这些方法。


6
为了补充丹的回复,JTextArea确实提供了cut()copy()paste()方法,可以处理实际的操作系统特定的操作。 roseindia.net上有一些参考代码。 还有其他一些复制的方式,这些方式在类似的stackoverflow主题中进行了记录,比如这个:)

2
这是一些代码供您参考:http://www.roseindia.. 人们普遍认为RI唯一做对的事情就是SEO。技术建议通常是错误的,而且代码大多已过时、粗糙或其他质量差的问题。另一方面,除了违反EDT规则、表达不清的if语句、EXIT_ON_CLOSE和调用setSize()之外,那个链接可能是我在该网站上看到的“最不糟糕”的链接。 - Andrew Thompson
我的意思是纯粹为了使用JTextArea提供的cut()、copy()和paste()方法而引用它。我本可以链接到JavaDoc页面,但是我很想提供一个可行的解决方案。 - javatarz
请参阅Java教程以获取示例。 - Andrew Thompson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接