J'essaie d'effacer le JTextArea.
Actuellement, j'utilise
jtextarea.setText(null);
Quelle est la différence si j'utilise
jtextarea.setText("");
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
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.
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.
JTextArea0.selectAll();
JTextArea0.replaceSelection("");