webentwicklung-frage-antwort-db.com.de

Wie lösche ich JTextArea?

Ich versuche die JTextArea zu löschen.

Derzeit verwende ich 

jtextarea.setText(null);

Was ist der Unterschied, wenn ich es benutze? 

jtextarea.setText("");
21
Lord Rixuel

Es gibt keinen Unterschied. Beide haben den Effekt, den alten Text zu löschen. Von der Java TextComponent Seite:

Text setzen

  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
19
Kevin S

Was der Autor versuchte, war klar, dass JTextArea nicht mit einem Nullzeichen versehen wurde!

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

Dies wählt die gesamte TextArea aus und ersetzt dann eine Nullzeichenfolge, wodurch die JTextArea effektiv gelöscht wird.

Ich bin nicht sicher, was das Missverständnis war, aber ich hatte die gleiche Frage und diese Antwort löste es für mich.

1
John Perczyk

Eigentlich gibt es den Unterschied, denke ich. 

Wenn Sie den Wert auf Null setzen, ist der in den Textbereich geschriebene Wert nichts. Wenn Sie es auf "" setzen, wird es ein leeres Zeichen sein. Das gleiche wie Sie es auf "z" setzen können, und es wird z geschrieben, aber Null bedeutet "Unbekannt". Sie werden den Unterschied erst erkennen, wenn Sie den in textArea geschriebenen Text verwenden müssen. 

0
exploded Baloon
JTextArea0.selectAll();
JTextArea0.replaceSelection("");
0