在JTextArea的插入符位置插入文本

3

我想在当前光标位置将文本插入到JTextArea中,该如何实现?我只找到了JavaScript教程。

4个回答

14

使用 textarea.setText() 将替换文本的整个内容。 相反,您必须使用文本对象的 insert() 方法。

textarea.insert("My String Here", textarea.getCaretPosition());

通过 textObject.getCaretPosition() 可以获取插入符位置,并从此处开始添加文本。

我也发现这个链接很有用:https://dev59.com/5VXTa4cB1Zd3GeqPyBLE#5255666

总之:

textarea.replaceSelection("");
textarea.insert("My String Here", textarea.getCaretPosition());

这个答案出现在“低质量帖子”队列中。您可以通过添加一些关于代码的解释以及为什么它比先前的答案更好来改进它。 - fedorqui
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Yoda
@Yoda 嗯,没错。也许你可以尝试用更广泛的解释来编辑它,然后标记为未删除。 - fedorqui

5
请看这个方法 getCaretPosition()

返回文本组件中文本插入符的位置。


4

使用 getDocument().insertString 方法来代替 setText 方法。

textarea.getDocument().insertString(textarea.getCaretPosition(), t, null);

0
你可以做以下操作。首先设置光标位置,然后插入你的文本。
textarea.setCaretPosition(int posintion)
textarea.setText(yourData);

这不会在当前插入符位置插入文本,而是在您想要的插入符位置插入。 - Alexis C.
你可以使用你指定的getCaretPosition()方法获取当前光标位置,或者我通常向文本区域添加鼠标事件监听器并在onClick中设置光标位置。 - Aniket Thakur
这将替换textArea的内容。请检查我的答案。 - Soley

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