TextArea clearen mit setText("") ?

DasHannes

Mitglied
Ich will ein simples Textarea zurücksetzen und versuche das mit
textarea.setText("");
so wie es in vielen foren gesagt wurde, leider passiert das, was eigentlich mit .append() passieren sollte, der (leere) string wird angefügt, anstatt den inhalt des areas zu ersetzen. was mach ich falsch?

ich nutze die jre6
 

Oli

Top Contributor
Hi,

also ich nutze auch Textareas. Das löschen des Inhalts mache ich auch über ta.setText("");

Ruf doch mal ein ta.repaint(); nach dem setText() auf.

Grüße
 
S

SlaterB

Gast
System.gc() muss man nie selber aufrufen,
und eine neue TextArea ist trotzdem nicht sinnvoll, zumal die alte noch mühsam aus der GUI entfernt, die neue stattdessen eingefügt werden muss,
dazu alles Layout neuberechnen..

setText("") funktioniert, wenn nicht dann liegt ein Programmierfehler vor, dem man an ehesten an einem Gesamt-Testprogramm erkennt,
Aufruf an falschem Objekt oder so
 

Oli

Top Contributor
Hallo,

die Textarea muss ich nicht aus dem Layout entfernen, wenn ich sie global definiere und dann einer JScrollPane o.ä. adde.

Grüße Oli
 

Oli

Top Contributor
Trotzdem wäre es vielleciht sinvoll, wenn du mal deinen Quellcode posten würdest. Da ist sicher ein Fehler drin, denn wie SlaterB schon sagte, setText(""); funktioniert definfitiv. Also denke ich, dass das Problem in einem fehlerhaften Code liegt...
 

Oli

Top Contributor
Ich adde die Textarea genau einmal. Bei der Initialisierung im Konstruktor. Wenn ich dann ta=new Textarea(); ta.repaint() aufrufe, dann brauche ich diese nicht ein zweitesmal zu adden.

Grüße
 

Oli

Top Contributor
Hier mal ein Beispielcode:

Da funktioniert es tadellos:

Code:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class TextAreaTest extends JFrame implements ActionListener {

	private static final long serialVersionUID = 1L;
	private JTextArea ta;
	private JButton print, clear, exit, save, load;

	public TextAreaTest(int rows, int cols) {

		setLayout(new BorderLayout());

		ta = new JTextArea(10, 40);
		add(ta, BorderLayout.CENTER);

		JPanel south = new JPanel();
		south.setLayout(new GridLayout(1, 3));

		print = new JButton("Print");
		south.add(print);
		print.addActionListener(this);

		clear = new JButton("Clear");
		south.add(clear);
		clear.addActionListener(this);

		exit = new JButton("Exit");
		south.add(exit);
		exit.addActionListener(this);

		save = new JButton("Save");
		south.add(save);
		save.addActionListener(this);

		load = new JButton("Load");
		south.add(load);
		load.addActionListener(this);

		add(south, BorderLayout.SOUTH);

		pack();
		setLocationRelativeTo(null);
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == exit)
			System.exit(0);
		if (e.getSource() == print)
			System.out.println(ta.getText());
		if (e.getSource() == clear) {
			ta.setText("");
			ta.repaint();
		}
		if (e.getSource() == save)
			try {
				File ausgabeDatei = new File("c:\\test.txt");
				FileWriter fw = new FileWriter(ausgabeDatei);
				BufferedWriter bw = new BufferedWriter(fw);
				bw.write(ta.getText());
				bw.newLine();
				bw.close();
				fw.close();
			}
			catch (Exception a) {
				JOptionPane.showMessageDialog(null, "Fehler beim Speichern der Datei.", "Fehler", JOptionPane.ERROR_MESSAGE);
				a.printStackTrace();
			}

		if (e.getSource() == load) {
			System.out.println("load");
			try {
				BufferedReader reader = new BufferedReader(new FileReader("d:\\test.txt"));
				String line;
				while ((line = reader.readLine()) != null) {
					ta.append(line + "\n");
				}
				reader.close();
			}
			catch (Exception a) {
				JOptionPane.showMessageDialog(null, "Fehler beim Speichern der Datei. (Datei nicht gefunden)", "Fehler", JOptionPane.ERROR_MESSAGE);
				a.printStackTrace();
			}
		}
	}

	public static void main(String[] args) {
		new TextAreaTest(2, 1).setVisible(true);
	}
}
 
S

SlaterB

Gast
> Wenn ich dann ta=new Textarea(); ta.repaint() aufrufe, dann brauche ich diese nicht ein zweitesmal zu adden.

nun, das wage ich zu bezweifeln, und weise darauf hin, dass z.B. das JScrollPane in der GUI informiert werden muss, sonst die alte Komponente behält,
aber da können wir ewig streiten, beweisen tut das nichts,
wer sichergehen will, testet es in einem Testprogramm, von mir nur der Hinweis
 

Oli

Top Contributor
Nun ich denke, das wird das repaint() übernehmen. Das die alte Komponente entfernt wird und die neue geadded wird ist selbstredend. Aber umständlich ist es nicht, da ich das ja nicht selbst machen muss.
Aber das hat jetzt eigentlich ncihts mit dem Thema zu tun. Ich denke, dass der Fehler hier im Sourcecode liegt. Aber wenn wir den nicht einsehen können, können wir nur mutmaßen....

Und außerdem: Wer streitet denn ;-)

Grüße Oli
 

DasHannes

Mitglied
Ich frage mich, durch was Du zu dem Schluss kommst, dass das angefügt wird.


wenn ich das programm ausführe (umfangreiche berechnung auf der basis einer eingebbaren variablen) wird jedes mal der outputtext im textarea angefügt, wenn ich mit setText z.b. ein leerzeichen statt dem leeren string eingebe, also setText(" "), erscheint dieses leerzeichen zwischen den beiden ausgaben.

zum quellcode: der ist groß und hier wenig zweckmäßig, ausserdem im rahmen meiner arbeit vertraulich. was das textarea betrifft hier die meiner meinung nach wesentlichen elemte:

Java:
public class .. extends Applet {
   TextArea out;

 public void init() {
   out = new TextArea("abc", 25, 60);
 }

 public void action() {
   out.setText(""); //reset
   out.setText(string); //output
 }

}

nachtrag: es handelt sich um ein applet
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> was das textarea betrifft hier die meiner meinung nach wesentlichen elemte:

dann ergänze doch diese Elemente zu einem vollständigen Testprogramm, so dass man es ausprobieren kann
Fehler tritt auf? -> na dann kann nach 10 Postings endlich mit der Korrektur angefangen werden
Fehler tritt nicht auf? -> gibt wohl doch noch paar mehr wesentliche Elemente im restlichen Programm ;)
 

DasHannes

Mitglied
Java:
// Ze.java
 

import java.awt.*;
import java.applet.Applet;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class Ze extends Applet
{
    //variablen, auslassung

    Label xPrompt, startPrompt; 
    TextField ppdField; // input field
    String outp = "*** Ze ***" + "\r\n";
    TextArea out; // !!!
	
	
    public void init()
    {

        setLayout(new FlowLayout(FlowLayout.LEFT));
        setFont(new Font("Times", Font.PLAIN, 20));
        setSize(550, 450);

        xPrompt = new Label("Geben Sie die Auftraege pro Stunde ein:");
        ppdField = new TextField("24", 10);
        out = new TextArea("ZeWin", 25, 60); / !!!

        ppdField.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                action(); 
            }
        }
        );

        startPrompt = new Label("Druecken Sie Return zum " + 
            "Start der Berechnung.");

        add(xPrompt);
        add(ppdField);
        add(startPrompt);
        add (out);

    }

    // display the result as graphics
    public void paint(Graphics g)
    {
        g.drawString(message, 150, 130);
    }

    // process user's action on the input text fields
    public void action()
    {
    	out.setText("");
    	outp =  outp + "\r\n" + "***** ALGORITHM start *****" +" \r\n";
    	
           // input of values, auslassung
          // Berechnungen, auslassung
	
          out.setText(outp);

    }
    
	
}

genauer darf ich nicht :)
die auslassungen sind variablendeklarationen, eingabe von werten und die berechnungen, die sich aus einfachen if/else abfragen zusammensetzen und keinen komplizierten scope haben.

im testprogramm hats funktioniert (hätte man auch einfacher testen können):
Java:
// Text.java

import java.awt.*;
import java.applet.Applet;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Test extends Applet {
   TextArea out;
   String string="Hallo";
   TextField a;
   
 public void init() {
    a=new TextField(10);
    out = new TextArea("abc", 5, 15);
	add(a);
	add(out);
a.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                action(); 
            }
        }
        );
 }
 
 public void action() {
 
   out.setText(""); //reset
   out.setText(string); //output
 }
 
}

ich sehe nun keinen nennenswerten unterschied..
 
S

SlaterB

Gast
was ist denn jetzt die Frage, zeigt eines der Programme den Fehler oder nicht?
bei Ze wird 'ALGORITHM start' recht häufig ausgegeben, aber auch kein Wunder bei einer Code-Zeile wie

outp = outp + "\r\n" + "***** ALGORITHM start *****" +" \r\n";
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
O ScrollPane, TextArea Java Basics - Anfänger-Themen 1
J Ärger mit TextArea und Linesep. Java Basics - Anfänger-Themen 3
T Java FX TextArea Java Basics - Anfänger-Themen 3
M TextArea scrollbar bei editable false Java Basics - Anfänger-Themen 5
D JScrollPane mit TextArea Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
T Klassen JTextArea und TextArea Java Basics - Anfänger-Themen 8
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
P JavaFX TextArea.setText Java Basics - Anfänger-Themen 13
K Symmetrische Verschlüsselung von TextArea Java Basics - Anfänger-Themen 7
fLooojava Output in einer Textarea einfärben Java Basics - Anfänger-Themen 7
S import java.*; vs import java.awt.TextArea Java Basics - Anfänger-Themen 7
S TextArea, RandomAccessFile, Apend und andere Tricks... Java Basics - Anfänger-Themen 7
F TextArea auslesen und in Datei speichern Java Basics - Anfänger-Themen 4
G textarea action Java Basics - Anfänger-Themen 5
F Erste Schritte String von anderer Klasse auf TextArea von erster Klasse Java Basics - Anfänger-Themen 12
A Timer: textarea.getText() mit Variable vergleichen Java Basics - Anfänger-Themen 3
M TextArea hält Zeilengrenze nicht ein Java Basics - Anfänger-Themen 4
M Textarea auslesen Java Basics - Anfänger-Themen 6
H Input/Output Inhalt einer TextArea in Hex umwandeln Java Basics - Anfänger-Themen 10
P Textarea auslesen Java Basics - Anfänger-Themen 18
R Array in Textarea ausgeben Java Basics - Anfänger-Themen 3
Binary.Coder Bruch in Textarea Java Basics - Anfänger-Themen 5
0 String farbig in TextArea Java Basics - Anfänger-Themen 10
A TextArea und ScrollBar Java Basics - Anfänger-Themen 17
B ArrayList zu TextArea Java Basics - Anfänger-Themen 5
N leere JTextArea wird nicht angezeigt - TextArea aber schon? Java Basics - Anfänger-Themen 5
G Text aus TextArea in Zwischenablage kopieren Java Basics - Anfänger-Themen 6
S Texteingabe in Textarea sperren? Java Basics - Anfänger-Themen 3
M Scrollbar zu Textarea Java Basics - Anfänger-Themen 5
Luk10 TextArea und Konsole ... Java Basics - Anfänger-Themen 3
C ArrayList In textarea ausgeben Java Basics - Anfänger-Themen 3
K In TextArea ausgeben ? Java Basics - Anfänger-Themen 4
M im Programm TextArea hinzufügen Java Basics - Anfänger-Themen 2
K Txt statt in TextArea in JTable einlesen und bearbeiten können Java Basics - Anfänger-Themen 4
S String repräsentation eines XML-Files für Textarea formatieren. Java Basics - Anfänger-Themen 2
Z Text aus externer Datei in TextArea einlesen Java Basics - Anfänger-Themen 5
Z TextArea Größe festlegen Java Basics - Anfänger-Themen 22
S Zeilenumbruch awt.textarea Java Basics - Anfänger-Themen 16
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
D Problem beim auslesen von TextArea Java Basics - Anfänger-Themen 3
J Multithreading mit einer TextArea Java Basics - Anfänger-Themen 29
S Konsole auf Textarea Java Basics - Anfänger-Themen 7
N String vom InputStream in TextArea übertragen Java Basics - Anfänger-Themen 6
E Probleme mit setText() bzw. append() bei TextArea Java Basics - Anfänger-Themen 13
D Probleme mit TextArea und Textfield Java Basics - Anfänger-Themen 27
M Scrollpane an Textarea anhängen Java Basics - Anfänger-Themen 3
W TextArea Probleme Java Basics - Anfänger-Themen 3
M String in textarea übernehmen klappt nicht Java Basics - Anfänger-Themen 13
P TextArea Problem Java Basics - Anfänger-Themen 8
G TextArea - Strings farbig Java Basics - Anfänger-Themen 2
D Button im Bezug auf TextArea Java Basics - Anfänger-Themen 17
Q TextArea - wie mache ich einen Absatz? Java Basics - Anfänger-Themen 9
H Textarea aktualisieren Java Basics - Anfänger-Themen 2
P aus Textarea bestimmte Zeile auslesen Java Basics - Anfänger-Themen 3
J Textarea (zeichen) in Zahlen umwandeln Java Basics - Anfänger-Themen 5
R Variable in Textarea auslesen Java Basics - Anfänger-Themen 7
G Bild hinter TextArea Java Basics - Anfänger-Themen 2
G Automatischer Zeilenumbruch bei einer TextArea Java Basics - Anfänger-Themen 16
D textarea in einer JSP Java Basics - Anfänger-Themen 3
M Inhalt einer TextArea in die Zwischenablage kopieren Java Basics - Anfänger-Themen 2
L Textformatierung ist TextArea Java Basics - Anfänger-Themen 7
N In der Textarea an einer bestimmten Positon weiterschreiben? Java Basics - Anfänger-Themen 6
L Strings von Datei lesen und in TextArea schieben Java Basics - Anfänger-Themen 3
7 TextArea Java Basics - Anfänger-Themen 3
O Konsolenausgabe auf TextArea umleiten Java Basics - Anfänger-Themen 4
C HTML in TextArea deaktivieren. Java Basics - Anfänger-Themen 2
V TextArea einlesen, zeichen verändern, ausgeben! Java Basics - Anfänger-Themen 2
U Cursorposition in Textarea rausfinden Java Basics - Anfänger-Themen 7
R in einer TextArea den Cursor gleich anzeigen lassen Java Basics - Anfänger-Themen 3
G wieso ist die TextArea im Fenster nicht sichtbar Java Basics - Anfänger-Themen 3
N Teilweiseausgabe eines Vectors in eine TextArea Java Basics - Anfänger-Themen 21
B Größe der Textarea Java Basics - Anfänger-Themen 3
N Inhalt einer TextArea überschreiben Java Basics - Anfänger-Themen 4
N Wert aus Coice auslesen und in textarea einfügen Java Basics - Anfänger-Themen 23
M JDialog mit TextArea Java Basics - Anfänger-Themen 2
J TextArea auf Anfang setzen Java Basics - Anfänger-Themen 3
L Frage zu TextArea! Java Basics - Anfänger-Themen 16
J CMD Screen per Java clearen, wie? Java Basics - Anfänger-Themen 2
L Methode in setText() setzen Java Basics - Anfänger-Themen 6
S setText aus anderer class heraus Java Basics - Anfänger-Themen 6
P Settext-Methode funktioniert nicht Java Basics - Anfänger-Themen 11
D SetText als Array ausgeben Java Basics - Anfänger-Themen 1
D SetText Ausgabe von einem Array Java Basics - Anfänger-Themen 6
L Null Pointer Exception bei setText Java Basics - Anfänger-Themen 9
G JTextField, DocumentListener, Fehler bei setText() Java Basics - Anfänger-Themen 3
T Input/Output Alternativen zu setText Java Basics - Anfänger-Themen 3
S JTextField leeren ohne setText("")? Java Basics - Anfänger-Themen 3
MonsterBit setText bei JLabel Java Basics - Anfänger-Themen 16
J "label.setText" funktioniert nicht Java Basics - Anfänger-Themen 9
K JButton.setText Problem Java Basics - Anfänger-Themen 6
T JTextPane - setText kein kein neuladen der Bilder? Java Basics - Anfänger-Themen 8
O Layoutpositionierung nach setText Java Basics - Anfänger-Themen 2
Screen getText , setText Fehler ! Swing Java Basics - Anfänger-Themen 11
K Warum funktioniert hier die setText methode? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben