Mega Code Archive

 
Categories / Java by API / Java Applet
 

Implements AppletStub

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.rntsoft.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.rntsoft.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;   } }