3

我想更改 JTextArea 中选定文本的文本。

例如,当我按下按钮时,我希望更改选定的文本(选定的原始文本 - 当我按下按钮时我想像这样替换:替换:选定的原始文本)这就是我在我的代码中尝试做的,

String replacement = "Replace:" + messageBodyText.getSelectedText() ";

但我不知道如何只更改选定的文本我正在尝试做某事但我正在更改 JTextArea 的整个文本希望你理解我的问题?

感谢充满鳗鱼的气垫船,他解决了我的问题,这是我为面临同样问题的其他人提供的代码:

int start = messageBodyText.getSelectionStart();
            int end = messageBodyText.getSelectionEnd();

            StringBuilder strBuilder = new StringBuilder(messageBodyText.getText());
            strBuilder.replace(start, end, "Replace:" + messageBodyText.getSelectedText() + ".");
            messageBodyText.setText(strBuilder.toString());
4

2 回答 2

6

JTextComponent(以及因此的 JTextArea)具有可以帮助您getSelectionStart()getSelectionEnd()方法。从 JTextArea 或其 Document 中获取文本,并使用这些 int 值更改文本并将其替换为文本组件。

例如,

int start = myTextField.getSelectionStart();
int end = myTextField.getSelectionEnd();
StringBuilder strBuilder = new StringBuilder(myTextField.getText());
strBuilder.replace(start, end, newText);
myTextField.setText(strBuilder.toString());
于 2013-06-04T18:41:29.750 回答
5
textComponent.replaceSelection(newText);
于 2013-06-05T00:40:19.003 回答