use*_*862 3 java swing selected jtextarea
我想在JTextArea中更改所选文本的文本.
例如,当我按下按钮时,我希望更改所选文本(原始文本选择 - 当我按下按钮时我想替换这样:替换:原始文本选择)这是我在我的代码中尝试做的,
String replacement = "Replace:" + messageBodyText.getSelectedText() ";
Run Code Online (Sandbox Code Playgroud)
但我不知道如何只更改选定的文本,我正在尝试做一些事情,但我正在改变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());
Run Code Online (Sandbox Code Playgroud)
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());
Run Code Online (Sandbox Code Playgroud)