我想在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());
答案 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);