MainClass.java Source code

Java tutorial

Introduction

Here is the source code for MainClass.java

Source

import java.applet.Applet;
import java.applet.AppletContext;
import java.applet.AppletStub;
import java.applet.AudioClip;
import java.awt.Button;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;

public class MainClass extends Applet implements ActionListener {
    static MainClass myApplet;

    static MyStub myStub;

    Image im;

    public void init() {
        System.out.println("Code base = " + getCodeBase());
        System.out.println("Document base = " + getDocumentBase());

        System.out.println("\ninit () called");
        System.out.println("isActive () returns " + isActive());

        Button b = new Button("Visit www.java2s.com");
        b.addActionListener(this);
        add(b);

        b = new Button("Audio");
        b.addActionListener(this);
        add(b);

        String imageName = getParameter("image");

        if (imageName != null)
            im = getImage(getCodeBase(), imageName);
    }

    public void start() {
        System.out.println("start () called");
        System.out.println("isActive () returns " + isActive());
    }

    public void paint(Graphics g) {
        if (im != null)
            g.drawImage(im, 0, 0, this);
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("Audio")) {
            String soundName = getParameter("audio");

            if (soundName != null) {
                AudioClip ac = getAudioClip(getDocumentBase(), soundName);

                ac.play();
            }

            return;
        }

        try {
            URL u = new URL("http://www.java2s.com");
            getAppletContext().showDocument(u);
        } catch (MalformedURLException exc) {
            System.out.println(e);
        }
    }

    public void stop() {
        System.out.println("stop () called");
        System.out.println("isActive () returns " + isActive());
    }

    public void destroy() {
        System.out.println("destroy () called");
        System.out.println("isActive () returns " + isActive());
    }

    public static void main(String[] args) {
        Frame frame = new Frame("AppletAndApp as an Application");
        myApplet = new MainClass();

        frame.add(new Panel().add(myApplet));

        frame.addNotify();

        myApplet.setStub(myStub = new MyStub(args));
        myApplet.init();

        frame.setSize(300, 200);
        frame.setVisible(true);

        myStub.setActive(true);
        myApplet.start();

        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent w) {
                myStub.setActive(false);
                myApplet.stop();
                myApplet.destroy();
                System.exit(0);
            }
        });
    }
}

class MyStub implements AppletStub {
    private boolean active = false;

    private Hashtable ht = new Hashtable();

    private MyContext context;

    MyStub(String[] args) {
        context = new MyContext();
        if ((args.length & 1) != 0)
            return;

        for (int i = 0; i < args.length; i += 2)
            ht.put(args[i], args[i + 1]);
    }

    public boolean isActive() {
        return active;
    }

    public URL getDocumentBase() {
        URL u = null;

        try {
            u = new URL("file:/C:./x.html");
        } catch (MalformedURLException e) {
        }

        return u;
    }

    public URL getCodeBase() {
        URL u = null;
        try {
            u = new URL("file:/C:./");
        } catch (MalformedURLException e) {
        }

        return u;
    }

    public String getParameter(String name) {
        return (String) ht.get(name);
    }

    public AppletContext getAppletContext() {
        return context;
    }

    public void appletResize(int width, int height) {
    }

    public void setActive(boolean active) {
        this.active = active;
    }
}

class MyContext implements AppletContext {
    public AudioClip getAudioClip(URL url) {
        return Applet.newAudioClip(url);
    }

    public Image getImage(URL url) {
        Toolkit tk = Toolkit.getDefaultToolkit();
        return tk.getImage(url);
    }

    public Applet getApplet(String name) {
        return null;
    }

    public Enumeration getApplets() {
        return null;
    }

    public void showDocument(URL url) {
        System.out.println("Showing document " + url);
    }

    public void showDocument(URL url, String frame) {
        try {
            showDocument(new URL(url.toString() + frame));
        } catch (MalformedURLException e) {
        }
    }

    public void showStatus(String message) {
        System.out.println(message);
    }

    public void setStream(String key, InputStream stream) throws IOException {
    }

    public InputStream getStream(String key) {
        return null;
    }

    public Iterator<String> getStreamKeys() {
        return null;
    }
}