如何在Java中更改所选文本的文本?

时间:2013-06-04 18:39:34

标签: java swing jtextarea selected

我想在JTextArea中更改所选文本的文本。

例如,当我按下按钮时,我希望更改所选文本(原始文本选择 - 我想在按下按钮时替换为这样:替换:原始文本选择)这是我想要在我的代码,

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

但我不知道如何更改所选文本我正在尝试做一些事情,但我正在更改JTextArea的整个文本希望您理解我的问题?

感谢Hovercraft Full Of Eels他解决了我的问题,这是我面向同样问题的其他人的代码:

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());

2 个答案:

答案 0 :(得分:5)

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());

答案 1 :(得分:4)

textComponent.replaceSelection(newText);