import java.applet.Applet;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class AWTGoodbyeWorld
  extends Applet
{

  public static void main ( String[] args )
  {
    AWTGoodbyeWorld app = new AWTGoodbyeWorld ();

    Frame frame = new Frame ( "AWTGoodbyeWorld" );
    frame.setSize ( 150, 150 );
    frame.add ( app );
    frame.show ();

    app.m_applet = false;
    app.init ();

    WindowAdapter windowCloser =
      new WindowAdapter ()
      {
	public void windowClosing ( WindowEvent wevt )
	{
	  System.exit ( 0 );
	}
      };

    frame.addWindowListener ( windowCloser );
  }

  public void init ()
  {
    super.init ();
    Button btn = new Button ( "Goodbye World!" );
    add ( btn );

    ActionListener quiter =
      new ActionListener ()
      {
	public void actionPerformed ( ActionEvent aevt )
	{
	  if ( m_applet )
	  {
	    // cannot really destory the applet so make its button go away
	    removeAll ();
	  }
	  else
	    System.exit ( 0 );
	}
      };

    btn.addActionListener ( quiter );
  }

  private boolean m_applet = true;

}
