cyrus.one: Applet Problem Anzeige Scrollbar

Hallo, ich bin Anfänger in Sachen JAVA... deshalb erklär ich mal mein Problem:

Ich will einen Chat in einem Applet initialisieren, welches die Daten über PHP-Request bekommt und dann in nem JPane ausgibt...

das klappt ja auch, aber

1. Zeigt sich das Applet erst nach dem es die Nachrichtenschleife durchlaufen hat (was ja bei einem Chat nicht eintrifft, da ständig neue Daten hinzukommen) - das müsste sich doch ändern lassen oder?

2. Habe ich ein Problem mit der Scrollbar - kurz: sie funktioniert nicht.

Deshalb hier mal die Source:

package chat;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import javax.swing.border.*;

public class Applet1
extends Applet {
      String str1;
      final JEditorPane ausgabe = new JEditorPane();
      final JScrollPane jScrollPane1 = new JScrollPane(ausgabe);

Border border1;

final String dateilesen() {
            BufferedReader b = null;
            InputStreamReader in = null;

try {
                  URL url = new URL("http://localhost/chat/read.php");
                  URLConnection urlcon = url.openConnection();
                  urlcon.connect();
                  in = new InputStreamReader(urlcon.getInputStream());
                  b = new BufferedReader(in);
                  str1 = b.readLine();
            }
            catch (IOException ioe) {
                  ioe.printStackTrace();
            }
            finally {
                  try {
                        b.close();
                  }
                  catch (IOException ioe) {
                        ioe.printStackTrace();
                  }
                  try {
                        in.close();
                  }
                  catch (IOException ioe) {
                        ioe.printStackTrace();
                  }
            }
            return str1;
      }

public Applet1() {
            try {
                  jbInit();
            }
            catch (Exception e) {
                  e.printStackTrace();
            }
      }

private void jbInit() throws Exception {
            border1 = BorderFactory.createBevelBorder(BevelBorder.RAISED,
            Color.white, Color.white, new Color(115, 114, 105),
            new Color(165, 163, 151));
            ausgabe.setFont(new java.awt.Font("Dialog", 0, 10));
            ausgabe.setBorder(BorderFactory.createEtchedBorder());
            ausgabe.setDoubleBuffered(true);
            ausgabe.setPreferredSize(new Dimension(300, 344));
            ausgabe.setCaretColor(SystemColor.textHighlight);
            ausgabe.setSelectionColor(SystemColor.inactiveCaption);
            ausgabe.setSelectionEnd(37);
            ausgabe.setContentType("text/html");
            jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.
            HORIZONTAL_SCROLLBAR_NEVER);
            jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.
            VERTICAL_SCROLLBAR_AS_NEEDED);
            jScrollPane1.setViewportBorder(border1);
            jScrollPane1.setEnabled(true);
            jScrollPane1.setForeground(UIManager.getColor("textHighlight"));
            jScrollPane1.setAlignmentX( (float) 0.5);
            jScrollPane1.setAlignmentY( (float) 0.5);
            jScrollPane1.setAutoscrolls(true);
            jScrollPane1.setDebugGraphicsOptions(0);
            jScrollPane1.setMinimumSize(new Dimension(25, 25));
            jScrollPane1.setOpaque(true);
            jScrollPane1.setPreferredSize(new Dimension(15, 200));
            jScrollPane1.setToolTipText("");
            jScrollPane1.setActionMap(null);
            this.add(ausgabe, null);
            this.add(jScrollPane1, null);
            final StringBuffer TextBuffer = new StringBuffer();
            TextBuffer.append(
            "<html><body><font face="arial" size="3"><b><i>");
//Simulation von Nachrichtendurchläufen...
                  int a = 50;
                  while (a > 0) {
                        TextBuffer.append(dateilesen());
                        TextBuffer.append("<br>bla");
                        ausgabe.setText("" + TextBuffer);
                        a--;
                        validate();
                  }
            }
      }

Wäre nett, wenn mir jemand helfen könnte, Vielen Dank! :D