28

I'm trying to clear the JTextArea.

Currently, I'm using

jtextarea.setText(null);

What is the difference if I use

jtextarea.setText("");
braX
  • 11,506
  • 5
  • 20
  • 33
Lord Rixuel
  • 1,173
  • 6
  • 24
  • 43
  • 1
    `jtextarea.setText("")` may be a drop slower _the first time it is created_ (I mean, _the empty string_) since it is cached in an internal hashset. But this isn't even relevant on now days systems. The empty string may be - at some point - more readable. – Mordechai Apr 03 '13 at 21:48
  • 1
    With questions like these, you can look up the source code for setText() and look at the difference yourself. – Charlie May 11 '16 at 23:44

4 Answers4

26

There is no difference. They both have the effect of deleting the old text. From the java TextComponent page:

setText

  public void setText(String t)

  Sets the text of this TextComponent to the specified text. If the text is null
  or empty, has the effect of simply deleting the old text. When text has been
  inserted, the resulting caret location is determined by the implementation of
  the caret class.

  Note that text is not a bound property, so no PropertyChangeEvent is fired when
  it changes. To listen for changes to the text, use DocumentListener.

  Parameters:
      t - the new text to be set
  See Also:
      getText(int, int), DefaultCaret
Stephan
  • 41,764
  • 65
  • 238
  • 329
Kevin S
  • 2,713
  • 24
  • 31
  • Please fix this link and reference proper Swing component `JTextComponent` and not AWT one. Also consider referencing rather latest javadoc, ie, 1.7 – Guillaume Polet Apr 03 '13 at 22:11
3

What the author was trying to was clear the JTextArea, not add a null character to it!

    JTextArea0.selectAll();
    JTextArea0.replaceSelection("");

This selects the entire textArea and then replaces it will a null string, effectively clearing the JTextArea.

Not sure what the misunderstanding was here, but I had the same question and this answer solved it for me.

1
JTextArea0.selectAll();
JTextArea0.replaceSelection("");
CinCout
  • 9,486
  • 12
  • 49
  • 67
  • Please add some text to your answer in order to explain, what your code does and how it answers the initial question. – user1438038 May 29 '17 at 09:48
0

Actually There is the difference , i think so.

If you set it to null, The actual value written in text area will be nothing. But if you set it to "" it wil be an empty character. The same like you can set it to "z" and there will be written z, but null means unknow. You will not feal the difference until you gonna need to use the text written in textArea.