Given that
JTextArea t = new JTextArea();
Document d = t.getDocument();
String word1 = "someWord";
String word2 = "otherWord"
int pos = t.getText().indexOf(word1,i);
What is the difference between ...
this
if(pos!= -1){
t.replaceRange(word2.toUpperCase(), pos, pos+ word1.length());
}
and this
if(pos!= -1){
d.remove(pos, word1.length());
d.insertString(pos, word2.toUpperCase(), null);
}
Ultimately it does the same thing.
Go to the source code of JTextArea
here, where you can find that it is doing the same thing.
I have copied the method here also where you can find that it is doing
d.remove(pos, word1.length());
d.insertString(pos, word2.toUpperCase(), null);
in case of calling:
t.replaceRange(word2.toUpperCase(), pos, pos+ word1.length());
method.
Source code of the method of the class is below
public void replaceRange(String str, int start, int end) {
490 if (end < start) {
491 throw new IllegalArgumentException ("end before start");
492 }
493 Document doc = getDocument();
494 if (doc != null) {
495 try {
496 if (doc instanceof AbstractDocument) {
497 ((AbstractDocument)doc).replace(start, end - start, str,
498 null);
499 }
500 else {
501 doc.remove(start, end - start);
502 doc.insertString(start, str, null);
503 }
504 } catch (BadLocationException e) {
505 throw new IllegalArgumentException (e.getMessage());
506 }
507 }
508 }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With