28

我正在尝试清除 JTextArea。

目前,我正在使用

jtextarea.setText(null);

如果我使用有什么区别

jtextarea.setText("");
4

4 回答 4

26

没有区别。它们都有删除旧文本的效果。从 java TextComponent页面:

设置文本

  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
于 2013-04-03T21:38:08.367 回答
3

作者试图清除 JTextArea,而不是添加空字符!

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

这会选择整个 textArea,然后将其替换为空字符串,从而有效地清除 JTextArea。

不知道这里有什么误解,但我有同样的问题,这个答案为我解决了。

于 2018-10-23T06:17:17.240 回答
1
JTextArea0.selectAll();
JTextArea0.replaceSelection("");
于 2017-05-29T06:32:20.820 回答
0

其实是有区别的,我想是的。

如果设置为null,则写入文本区的实际值将是空的。但是如果你将它设置为 "" 它将是一个空字符。就像你可以将它设置为“z”一样,会写成z,但null表示未知。在您需要使用 textArea 中编写的文本之前,您不会感觉到差异。

于 2016-05-11T22:55:44.480 回答