ChatFrame.java

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

public class ChatFrame extends JFrame implements AppletStub, AppletContext {

private JApplet appletPane;

public static void main(String[] args) { new ChatFrame(new ChatApplet); }

public ChatFrame(JApplet a) { appletPane = a;       a.init; a.setStub(this);

addWindowListener(new WindowAdapter {           public void windowClosing(WindowEvent e) {                doExit;            }        });

setTitle("ChatClient");

Dimension size = new Dimension(640, 415); setSize(size); setResizable(false);

Point location = new Point(0, 0); try { ObjectInputStream iniIn = new ObjectInputStream(                   new FileInputStream("chat.ini"));

location = (Point)iniIn.readObject; iniIn.close; } catch (Exception e) { /* possibly no file, which is OK, or            * corrupt which we don't bother with */ }

setLocation(location); getContentPane.add(a);

show; a.start; }

private void doExit { try { ((ChatApplet)appletPane).disconnect; ObjectOutputStream iniUt = new ObjectOutputStream(                   new FileOutputStream("chat.ini")); iniUt.writeObject(getLocationOnScreen); iniUt.close; } catch (Exception exc) {} // I don't care System.exit(0); }

// The AppletStub methods public boolean isActive               {return true;} public URL getDocumentBase            {return null;} public URL getCodeBase                {return null;} public String getParameter(String name) {return "";  } public AppletContext getAppletContext {return this;} public void appletResize(int w, int h)  {}

// The AppletContext methods public AudioClip getAudioClip(URL u)    {return null;} public Image getImage(URL u)            {return null;} public Applet getApplet(String name)    {return null;} public Enumeration getApplets         {return null;} public void showDocument(URL u)         {} public void showDocument(URL u, String s){} public void showStatus(String s)        {} } 