2013-04-03 28 views
20

Ich versuche, die JTextArea zu löschen.Wie lösche ich JTextArea?

Derzeit bin ich mit

jtextarea.setText(null); 

Was ist der Unterschied, wenn ich

jtextarea.setText(""); 
+1

'jtextarea.setText ("")' kann ein Tropfen langsamer sein _the ersten Mal created_ ist (ich meine, _the leer String_), da es in einem internen Hashset zwischengespeichert wird. Aber das ist nicht einmal relevant für heutige Systeme. Die leere Zeichenfolge kann - an einem bestimmten Punkt - besser lesbar sein. – Mordechai

+0

Mit Fragen wie diesen können Sie den Quelltext für setText() nachschlagen und den Unterschied selbst betrachten. – Charlie

Antwort

19

verwenden Es gibt keinen Unterschied. Beide haben den Effekt, dass der alte Text gelöscht wird. Von der Java TextComponent Seite:

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 
+0

Bitte korrigieren Sie diesen Link und verweisen Sie auf die richtige Swing Komponente 'JTextComponent' und nicht AWT one. Beachten Sie auch eher die neueste javadoc, dh 1.7 –

+0

Vielen Dank, jetzt kann ich mir sicher sein. –

0

Eigentlich ist der Unterschied gibt es, denke ich so.

Wenn Sie es auf Null setzen, ist der tatsächliche Wert im Textbereich nichts. Aber wenn Sie es auf "" setzen, wird es ein leeres Zeichen sein. Das gleiche wie du kannst es auf "z" setzen und dort wird z geschrieben, aber null bedeutet unknow. Sie werden den Unterschied erst dann spüren, wenn Sie den in textArea geschriebenen Text verwenden müssen.

+0

Was ist ein "leerer Charakter"? – Charlie

+0

Leeres Zeichen ist ein ähnlicher Raum. Meiner Meinung nach. Es ist ein Charakter, aber wenn Sie es ausdrucken. Es wird nichts zeigen. Aber wenn Sie "null" ausdrucken, wird es zeigen und tatsächlichen Text - null. –

+0

'' ist kein leeres Zeichen, es ist eine Zeichenfolge mit der Länge Null. – Charlie

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

Bitte fügen Sie Ihrer Antwort einen Text hinzu, um zu erklären, was Ihr Code macht und wie er die erste Frage beantwortet. – user1438038