# Textausgabe in einem Applet



## marduk (16. Jun 2005)

Hallo Leute,

ich soll mithilfe eines Applets eine .txt-Datei einlesen und diese dann in einer JTextArea innerhalb eines Applets ausgeben. Das Einlesen funktioniert auch wunderbar, aber ich kann es einfach nicht in der JTextArea ausgeben. Um zu überprüfen, dass das Einlesen überhaupt funktioniert, gebe ich die Textdatei auf der Konsole aus. Das funktioniert auch wunderbar. Kann mir jemand einen Tipp geben, wie ich das ganze in der JTextArea ausgebe?

Hier erstmal der Code:


```
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.filechooser.FileFilter;

public class Applet1 extends JApplet implements ActionListener {
        private static final long serialVersionUID = 1L;
        JButton laden;

        public Applet1() {
                Container cp = getContentPane();
                cp.setLayout(new FlowLayout());
                laden = new JButton("laden");
                laden.addActionListener(this);
                add(laden);
                JTextArea textArea = new JTextArea(10, 20);
                textArea.setEditable(false);
                add(new JScrollPane(textArea));
                textArea.append("Fuck");
        }

        public void createfilechooser() {
                JFileChooser fc = new JFileChooser();

                fc.setFileFilter(new FileFilter() {
                        public boolean accept(File f) {
                                return f.isDirectory()
                                                || f.getName().toLowerCase().endsWith(".txt");
                        }

                        public String getDescription() {
                                return "Texte";
                        }
                });

                int returnVal = fc.showOpenDialog(null);

                if (returnVal == JFileChooser.APPROVE_OPTION) {

                        File file = fc.getSelectedFile();

                        int c;
                        FileReader f;
                        try {
                                f = new FileReader(file);

                                while ((c = f.read()) != -1) {
                                        System.out.print((char) c);
                                }

                                f.close();
                        } catch (IOException e) {
                                System.err.print(e);
                        }

                } else
                        System.out.println("Auswahl abgebrochen");

        }

        public void actionPerformed(ActionEvent event) {
                String cmd = event.getActionCommand();
                if (cmd.equals("laden")) {
                        createfilechooser();
                }
        }
}
```


Danke für eure Hilfe....

LG
marduk


----------



## Sky (16. Jun 2005)

Sag mir doch mal, in welcher Zeile deines Erachtens der Text in die TextArea geschrieben werden sollte...


----------



## marduk (16. Jun 2005)

also ich denke mal, dass ich anstatt der System.print Anweisung in Zeile 57 das ganze in die JTextArea schreiben muss.
Oder ist das falsch?

LG
marduk


----------



## Sky (16. Jun 2005)

marduk hat gesagt.:
			
		

> also ich denke mal, dass ich anstatt der System.print Anweisung in Zeile 57 das ganze in die JTextArea schreiben muss.
> Oder ist das falsch?
> 
> LG
> marduk


so würde es gehen...

Noch ein tipp: Nimmer mal einen Buffered-Reader...


----------



## marduk (16. Jun 2005)

ja, das denke ich mir auch, aber leider bekomme ich es nicht hin. Mein Problem ist, dass ich der JTextArea ja auf jeden Fall einen String übergeben muss, also z.b. bei der Methode append() oder setText(). Und zweitens habe ich leider in der while-schleife keinen zugriff auf die TextArea. 

Kannst du mir vielleicht sagen, wie ich diese Probleme lösen kann?

Thx
marduk


----------



## Sky (16. Jun 2005)

Ja. Am besten liest Du mit einem BufferedReader mittels 'readLine' eine ganze Zeile aus (da bekommst Du schon einen String zurück) und die TextArea muss eine Instanzvariable sein.


----------



## marduk (16. Jun 2005)

Super, vielen vielen Dank....So hat es geklappt....Habe leider nur noch das kleine Problem, dass die gesamte Textdatei jetzt in einer einzigen Zeile ausgegeben wird. Kann ich da irgendwie noch die Zeilenumbrüche einstellen?

LG
marduk


----------



## marduk (16. Jun 2005)

Ok, habe es schon gefunden.....

Vielen vielen Dank für deine Hilfe....

LG
marduk


----------

