web-dev-qa-db-fra.com

Comment effacer JTextArea?

J'essaie d'effacer le JTextArea.

Actuellement, j'utilise 

jtextarea.setText(null);

Quelle est la différence si j'utilise 

jtextarea.setText("");
21
Lord Rixuel

Il n'y a pas de différence. Ils ont tous deux pour effet de supprimer l'ancien texte. Depuis la page Java TextComponent :

Définir le texte

  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

Ce que l'auteur essayait de faire était d'effacer le JTextArea, pas d'ajouter un caractère nul à celui-ci!

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

Cela sélectionne l'intégralité de textArea, puis la remplace par une chaîne nulle, effaçant effectivement le JTextArea.

Je ne suis pas sûr de la nature du malentendu, mais j’avais la même question et cette réponse l’a résolu pour moi.

1
John Perczyk

En fait, il y a la différence, je pense que oui. 

Si vous le définissez sur null, la valeur réelle écrite dans la zone de texte sera nulle. Mais si vous le définissez sur "", ce sera un caractère vide. La même chose que vous pouvez définir sur "z" et il y aura écrit z, mais null signifie unknow. Vous ne ferez pas la différence tant que vous n’aurez pas besoin d’utiliser le texte écrit dans textArea. 

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