2013-06-04 53 views
2

我想更改JTextArea中選定文本的文本。如何更改Java中選定文本的文本?

例如,當我按下按鈕時,我希望所選文字被改變(原始文本被選中 - 當我按下按鈕時,我想替換成這樣:Replace:Original Text Selected)這就是我想要做的我的代碼,

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

回答

5

的JTextComponent(因此JTextArea中)有getSelectionStart()getSelectionEnd()方法,可以幫助你。從JTextArea或其文檔中獲取文本,並使用這些int值可以更改文本並將其替換爲文本組件。

例如,

int start = myTextField.getSelectionStart(); 
int end = myTextField.getSelectionEnd(); 
StringBuilder strBuilder = new StringBuilder(myTextField.getText()); 
strBuilder.replace(start, end, newText); 
myTextField.setText(strBuilder.toString()); 
+0

嘿夥計謝謝 你是我的英雄,我是接近,但沒有你,我相信我會浪費另一240分鐘 – user112862

+0

@ user112862:很高興它可以幫助。一個祕密:15分鐘前我不知道這些方法,但我認爲它們或類似它們的東西必須存在,並且JTextComponent API的快速峯值向我展示了這些方法。這對我來說是一個有用的啓發式,也可以爲你效勞。 –

+0

再次感謝你,我從你身上學到了另一件事,但有時當你努力工作時,大腦不起作用,當你是新手時,下一次我要休息,然後回來嘗試修復它。再次感謝 – user112862

相關問題